Php 嘲弄词的准确用法?
我只是想知道,这是如何在PHPUnit中使用mocky的准确表示,还是你能想出一个更好的例子?本质上,我是在嘲笑我的PodcastUploadService,因为我不关心是否上传了podcast,而是关心调用该方法并为我的输入返回truePhp 嘲弄词的准确用法?,php,phpunit,tdd,mockery,Php,Phpunit,Tdd,Mockery,我只是想知道,这是如何在PHPUnit中使用mocky的准确表示,还是你能想出一个更好的例子?本质上,我是在嘲笑我的PodcastUploadService,因为我不关心是否上传了podcast,而是关心调用该方法并为我的输入返回true <?php /** @test */ function can_store_podcast_thumbnail() { $podcast = factory(Podcast::class)->make([ 'feed_thumb
<?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);
}
我认为,如果你根本不关心是否上传了播客,就不应该为它编写测试
但是,如果你真的不关心它,你也不应该为它写代码
在当前的形式中,您的测试不会增加很多价值。实际上,它所测试的只是模拟框架是否工作。不过,这已经在其他地方测试过了,所以你在做双重工作
当您测试依赖于PodcastUploadService的服务时,mock是有意义的:您只想测试该服务,而不需要处理PodcastUploadService本身
有关更多信息,请参阅