У меня возникают проблемы с шпионом и макетом в тесте Laravel 7, когда я тестирую MyCustomClass.
Я пробовал оба макета перед запуском $ this-> get и шпионом после $ this-> получить. Оба с одним и тем же сообщением об ошибке (* ниже).
При запуске отладки в контроллере $ myCustomClass по-прежнему является MyCustomClass, а не смоделированным объектом.
MyCustomClass
class MyCustomClass
{
public function execute()
{
return 'hello';
}
MyController
class MyController
{
public function show()
{
$myCustomClass = new MyCustomClass();
$data = $myCustomClass->execute();
return $data;
}
private $mySpy;
public function testAMethod()
{
$spy = $this->spy(MyCustomClass::class);
$response = $this->get('/my/path');
$spy->shouldHaveReceived('execute');
$response->assertStatus(200);
}
Ошибка
Method execute(<Any Arguments>) from Mockery_2_App_MyCustomClass should be called
at least 1 times but called 0 times.