Я пытаюсь проверить своих View Composers.Всякий раз, когда я передаю объект в $view->with('string', $object)
, мой тест не проходит.Вот когда я делаю тест следующим образом:
$view
->shouldReceive('with')
->with('favorites', $this->user->favorites(Ad::class)->get())
->once();
Я почти уверен, что это из-за строгой проверки.Поэтому я оглянулся и увидел этот выпуск .Тем не менее, я не могу заставить его работать.Закрытие возвращает true, но тест завершается неудачно:
Mockery \ Exception \ InvalidCountException: метод с ('Favorites', ) из Mockery_3_Illuminate_View_View должен вызываться ровно 1 раз, но вызываться0 раз.
Вот мой текущий тест
public function it_passes_favorites_to_the_view()
{
$this->setUpUser(); // basically sets $this->user to a User object
Auth::shouldReceive('user')
->once()
->andReturn($this->user);
$composer = new FavoritesComposer();
$view = Mockery::spy(View::class);
$view
->shouldReceive('with')
->with('favorites', Mockery::on(function($arg) {
$this->assertEquals($this->user->favorites(Ad::class)->get(), $arg);
}))
->once();
$composer->compose($view);
}
FavoritesComposer class:
public function compose(View $view)
{
$user = Auth::user();
$favorites = $user
? $user->favorites(Ad::class)->get()
: collect([]);
$view->with('favorites', $favorites);
}
Как мне проверить подобный объект?