У меня есть макет сервисного класса. Он определяется как это в моей setUp
функцииПроблема с модулем PHPUnit
$this->myServiceMockup = $this->getMockBuilder(MyService::class)
->disableOriginalConstructor()
->setMethods(['myMethod'])
->getMock();
В моей тестовой функции я установить ожидание для него, как это.
$this->myServiceMockup->expects($this->once())
->method('myMethod')
->with($this->exactly(1), 'myName')
->willReturn($this->exactly(1));
Так что же это означает, что, когда я должен вызвать функцию MyMethod только один раз, и что он будет возвращать целое число 1.
So метод, который я тестирую имеет эту строку кода.
$myIntValue = $this->myService->myMethod($number, $name);
После этой линии $myIntValue
когда я запустить тест должен быть 1 и испытание должно продолжаться, так что мое понимание по этому вопросу.
Но вместо этого я получаю эту ошибку
не соответствует ожидаемому для имени метода равно когда вызывается 1 раз (а) Параметр 0 для вызова
Мой \ Путь \ К \ Class \ MyService: : myMethod (1, 'myName') не соответствует ожидаемому значению .
1 не соответствует ожидаемому типу «объект».
Не имеет никакого смысла, поскольку myMethod
ожидает целое число и строку.
public function myMethod($number, $name)
{
return $this->table->save($number, $name);
}
Может кто-нибудь объяснить мне, что я делаю неправильно здесь, потому что у меня нет идей.