在单元测试方法中,我试图像这样模拟Cache::remember
响应:
Cache::shouldReceive('remember')
->once()
->with('my_key', 120, function() {}) // There are 3 args in remember method
->andReturn([]);
但是我收到了这个错误:
异常'Mockery \ Exception \ NoMatchingExpectationException' 消息'找不到匹配的处理程序 Mockery_0_Illuminate_Cache_CacheManager ::记 (“my_key”,120,object(Closure))。这个方法都是 意外或其参数与预期参数不匹配 此方法的列表
我不明白为什么我收到此错误,并且在Laravel文档中没有找到任何关于此的内容。它说没有匹配,但似乎匹配。
如何模拟Cache::remember
回复?
答案 0 :(得分:5)
将with
方法的第三个参数替换为\Closure::class
以匹配任何闭包。
Cache::shouldReceive('remember')
->once()
->with('my_key', 120, \Closure::class)
->andReturn([]);
答案 1 :(得分:-1)