Точное использование издевательства над PHPUnit? - PullRequest
0 голосов
/ 23 сентября 2018

Мне просто интересно, это точное представление о том, как использовать 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);
}

Просто интересно,

Спасибо!

1 Ответ

0 голосов
/ 23 сентября 2018

Я бы сказал, что если вас совсем не волнует, загружен ли подкаст, вам не следует писать тест для него.

Но, опять же, если вас это не касаетсяВы также не должны писать код для него.

В текущей форме ваш тест не добавляет много значения.На самом деле все, что он проверяет, - это работает ли фреймворк.Это уже проверено в другом месте, поэтому вы выполняете двойную работу.

Имитация имеет смысл, когда вы будете тестировать службу , которая зависит от PodcastUploadService: вам нужно толькопротестируйте эту службу и не нужно иметь дело с самим PodcastUploadService.

Для получения дополнительной информации, эта статья о Mocks может помочь.

...