繁体   English   中英

准确使用嘲讽PHPUnit吗?

[英]Accurate usage of mockery PHPUnit?

我只是想知道,这是如何将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);
}

就是想,

谢谢!

我会辩称,如果您根本不关心是否已上传播客,则不应为此编写测试。

但是话又说回来,如果您真的不关心它,也不要为它编写代码。

在当前形式下,您的测试不会带来太多价值。 实际上,所测试的只是该模拟框架是否有效。 不过,该功能已经在其他地方进行了测试,因此您需要做双重工作。

当您测试依赖于 PodcastUploadService的服务时,可以使用模拟:您只想测试该服务 ,而无需处理PodcastUploadService本身。

有关更多信息, 有关Mocks的本文可能会有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM