Мне просто интересно, это точное представление о том, как использовать Mockery с PHPUnit, или вы можете придумать лучший пример? По сути, я издеваюсь над своим PodcastUploadService, поскольку меня беспокоит не то, что подкаст загружен, а то, что метод вызывается и возвращает true для моих входных данных.
<?php
/** @test */
function can_store_podcast_thumbnail()
{
$podcast = factory(Podcast::class)->make([
'feed_thumbnail_location' =>
'https://media.simplecast.com/image/artwork.jpg',
]);
$mockedService = Mockery::mock(\App\PodcastUploadService::class);
$mockedService->shouldReceive('storePodcastThumbnail')
->with($podcast)
->once()
->andReturn(true);
$mockedService->storePodcastThumbnail($podcast);
}
Просто интересуюсь,
Спасибо!






Я бы сказал, что если вас совсем не беспокоит, загружен ли подкаст, вам не следует писать для него тест.
Но опять же, если вас это действительно не волнует, вам также не следует писать для него код.
В текущей форме ваш тест не добавляет большой ценности. Все, что он на самом деле тестирует, - это то, работает ли фреймворк mocking. Однако это уже проверено в другом месте, так что вы делаете двойную работу.
Имитация имела бы смысл, когда вы тестируете службу это зависит от PodcastUploadService: вам нужно только протестировать эта услуга, и вам не нужно иметь дело с самой PodcastUploadService.
Для получения дополнительной информации может помочь эта статья о Mocks.