laravel - 模拟对同一类中另一个函数的函数调用
问题描述
我有调用同一类中另一个函数的函数。我正在尝试测试在我的单元测试中是否调用了该方法,但是找不到模拟它的方法。
这是方法调用的示例
public function follow($user_id, $followsfeed, $target_user_id)
{
$news_feeds = $this->getNewsFeeds($user_id);
}
我想模拟方法 getNewsFeed 并断言它在我执行 follow 时被调用。
实现这一目标的最佳方法是什么。因为我无法锻炼如何创建内部模拟对象。
解决方案
您可以使用部分 mocks,作为测试类的示例,您可以执行以下操作:
public function test_follow()
{
$mock = Mockery::mock('App\Services\SomeService')->makePartial();
$mock->shouldReceive('getNewsFeeds')
->once()
->with("id1","id2")
->andReturn($someNews);
$mock-> follow("id1","id2");
}
您还可以使用PHPUnit 测试替身
希望这有帮助
推荐阅读
- r - 将字符变量分成两列
- apache-spark - 分区或 RDD 的大小
- python - Tensorflow:在另一个模型中使用模型作为层
- python - 仅显示重复警告中的第一个 python
- azure-service-fabric - Service Fabric 升级使活动连接保持活动状态
- java - SAXON - XPath,使用节点和原始值解析变量
- azure-api-management - APIUrl 前缀不适用于 Azure APIM
- mysql - Dapper 只返回 Null 值
- azure - 如何将机密列表传递给 Azure 密钥保管库?
- excel - Excel VBA 间接解决方法