чтобы при каждом вызове он возвращал рандомное значение?
$docServiceMock->expects(self::any())
->method('createPDFDocument')
->willReturn(random_int(1, 100500));
В коде он вызывается два раза и на оба раза возвращает один и тот же рандомный инт. Как сделать два разных инта при каждом вызове?
->will($this->returnCallback()) или ->willReturnCallback(), чето такое было
Абсолютно в дырочку $docServiceMock->expects(self::any()) ->method('createPDFDocument') ->willReturnCallback( fn (): int => random_int(1, 100500), );
А что вы этим хотите протестировать ?
да функциональный тест приложухи гоняю, есть у меня сторонний сервис, который отвечает за генерацию и хранение финансовых документов. Ну и по ходу работы приложения пару-тройку раз дергается на генерацию доков, после чего возвращает айдишник сгенерированного документа. И вот столкнулся с тем, что замокав сервис таким образом, он мне возвращает один и тот же айдишник при каждом вызове. А приложуха падает - типа в моей бд неуникальные айдишники
ты понимаешь, что random_int срабатывает разок и передает свое значение функции willReturn. которая вообще не понимает и не знает про random_int.
Обсуждают сегодня