Тестирую метод methodWithGenerator который возвращает генератор.
Как тестирую:
public function testMethodWithGenerator()
{
$dataSource = $this->getMockBuilder(DataSource::class)
->setMethods(['getSourceLocation'])
->getMock();
$dataSource->expects($this->once())
->method('getSourceLocation')
->willReturn('asd');
$dataSource->methodWithGenerator();
}
Что тестирую:
public function methodWithGenerator()
{
$this->getSourceLocation();
for ($i=0; $i<=2; $i++) {
yield $i;
}
}
Получаю ошибку:
Expectation failed for method name is equal to when invoked 1 time(s).
Method was expected to be called 1 times, actually called 0 times.
Версия PHPUnit 5.3.2
Если yield заменить на return то тест проходит! Кто-нибудь сталкивался?