Я пытаюсь понять, как правильно проверить, вызывается ли функция или нет.
Эта функция busqueda определена в контроллере AnuncioController, поэтому я ожидаю, что она будет вызываться, когда пользователь нажимает кнопку поиска, которая отправляет сообщение в anuncios/busqueda. >.
Насколько я понимаю, это можно сделать с помощью моков. Это то, что я пробовал:
use \App\Http\Controllers;
class ExampleTest extends TestCase
{
public function testBuscador()
{
$mock_buscador = Mockery::mock(\App\Http\Controllers\AnuncioController::class);
$mock_buscador->shouldReceive('busqueda')->once()->andReturn(null);
$this->visit('/')->submitForm('Buscar')->seePageIs('anuncios/busqueda');
}
}
Но утверждение всегда терпит неудачу, я неправильно использую макеты?
Сообщение об ошибке:
PHPUnit 4.8.21 Себастьяна Бергманна и соавторов.
....E
Время: 352 мс, Память: 23,25 Мб
Была 1 ошибка:
1) ExampleTest::testBuscador Mockery\Exception\InvalidCountException: метод busqueda() из Mockery_0_App_Http_Controllers_AnuncioController должен вызываться ровно 1 раз, но вызываться 0 раз.
/var/www/html/anuncios.com/vendor/mockery/mockery/library/Mockery/CountValidator/Exact.php:37 /var/www/html/anuncios.com/vendor/mockery/mockery/library/Mockery/Expectation .php:271 /var/www/html/anuncios.com/vendor/mockery/mockery/library/Mockery/ExpectationDirector.php:120 /var/www/html/anuncios.com/vendor/mockery/mockery/library/Mockery /Container.php:297 /var/www/html/anuncios.com/vendor/mockery/mockery/library/Mockery/Container.php:282 /var/www/html/anuncios.com/vendor/mockery/mockery/library /Mockery.php:142 /var/www/html/anuncios.com/tests/ExampleTest.php:19
НЕУДАЧИ! Тестов: 5, Утверждений: 27, Ошибок: 1.
Фрагмент Routes.php:
Route::post('anuncios/busqueda', [
'as' => 'anuncios/busqueda',
'uses' => 'AnuncioController@busqueda',
]);
Фрагмент AnuncioController.php:
public function busqueda(Request $request)
{...}