测试Facade多功能

时间:2016-11-12 19:25:15

标签: laravel testing mockery

目前我正在尝试测试Facade通话。我发送松弛通知来通知我某些事情,但是我不希望每次运行测试时都会发生这种情况。

我使用以下内容:https://github.com/maknz/slack。 这使我能够执行以下操作:

Slack::to('aChannel')->attach('someData')->send('moreData');

我正在尝试通过执行以下操作来测试它:

Slack::shouldReceive('to')->once();

现在我认为这是有效的,但是代码现在给出了一个错误,因为我做不到 - > attach(.. 错误:在null上调用成员函数attach()

我认为这种情况正在发生,因为我嘲笑对象,它是空的。我无法调用该函数。

有没有人有这种情况的经验,并且知道如何在不破坏代码的情况下测试它?

1 个答案:

答案 0 :(得分:1)

之所以发生这种情况,是因为您正在使用链式方法。您可以像这样更新测试:

Slack::shouldReceive('to->attach->send')->once();

您可以在Mocking Demeter Chains And Fluent Interfaces here上了解详情。

希望这可以解决您的问题。