【问题标题】:Testing Facade multiple functions测试 Facade 的多种功能
【发布时间】:2017-03-26 19:00:02
【问题描述】:

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

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

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

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

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

现在我认为这是可行的,但是代码现在给出了一个错误,因为我不能这样做 ->attach(.. Error: Call to a member function attach() on null

我认为这是因为我模拟了对象,它是空的。我无法调用该函数。

有没有人遇到过这种情况并且知道我如何在不破坏代码的情况下进行测试?

【问题讨论】:

    标签: laravel testing mockery


    【解决方案1】:

    这是因为您使用了链式方法。您可以像这样更新您的测试:

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

    您可以在Mocking Demeter Chains And Fluent Interfaces here 上阅读更多相关信息。

    希望这能解决您的问题。

    【讨论】:

    • 谢谢,尝试将函数作为数组传递。没有想到这一点。也谢谢你的链接。测试现已完成!
    猜你喜欢
    • 1970-01-01
    • 2021-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-27
    • 1970-01-01
    相关资源
    最近更新 更多