目前我正在尝试测试Facade通话。我发送松弛通知来通知我某些事情,但是我不希望每次运行测试时都会发生这种情况。
我使用以下内容:https://github.com/maknz/slack。 这使我能够执行以下操作:
Slack::to('aChannel')->attach('someData')->send('moreData');
我正在尝试通过执行以下操作来测试它:
Slack::shouldReceive('to')->once();
现在我认为这是有效的,但是代码现在给出了一个错误,因为我做不到 - > attach(.. 错误:在null上调用成员函数attach()
我认为这种情况正在发生,因为我嘲笑对象,它是空的。我无法调用该函数。
有没有人有这种情况的经验,并且知道如何在不破坏代码的情况下测试它?
答案 0 :(得分:1)
之所以发生这种情况,是因为您正在使用链式方法。您可以像这样更新测试:
Slack::shouldReceive('to->attach->send')->once();
您可以在Mocking Demeter Chains And Fluent Interfaces here上了解详情。
希望这可以解决您的问题。