我想知道,这是如何在PHPUnit中使用Mockery的准确表示吗?或者你能想出一个更好的例子吗?本质上,我是在嘲笑我的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);
}只是想知道,
谢谢!
发布于 2018-09-24 03:09:16
我认为,如果你根本不关心是否上传了播客,你就不应该为它编写测试。
但话又说回来,如果你真的不关心它,你也不应该为它写代码。
在当前的表单中,您的测试并没有增加很多价值。实际上,它所测试的就是mocking框架是否工作。然而,这已经在其他地方进行了测试,所以您正在做双重工作。
当您测试依赖于的PodcastUploadService的服务时,模拟将是有意义的:您只想测试该服务,而不需要处理PodcastUploadService本身。
有关更多信息,this article about Mocks可能会有所帮助。
https://stackoverflow.com/questions/52469190
复制相似问题