【问题标题】:What is the difference between expect and when in $httpBackend$httpBackend 中的 expect 和 when 有什么区别
【发布时间】:2015-01-14 14:54:13
【问题描述】:

$httpBackend.when('')$httpBackend.expect('')有什么区别?

我不知道这两种方法的区别。 angularjs api 文档也对我没有帮助。

API 文档链接https://docs.angularjs.org/api/ngMock/service/$httpBackend

【问题讨论】:

    标签: angularjs angular-mock


    【解决方案1】:

    $httpBackend.expect - 指定请求期望
    $httpBackend.when - 指定后端定义

    发件人:https://docs.angularjs.org/api/ngMock/service/$httpBackend
    请求期望提供了一种对应用程序发出的请求进行断言并为这些请求定义响应的方法。如果未发出预期的请求或按错误的顺序发出请求,则测试将失败。

    后端定义允许您为您的应用程序定义一个假后端,它不会断言是否发出了特定请求,如果发出请求,它只会返回经过训练的响应。无论请求是否在测试期间发出,测试都将通过。

    因此,这意味着如果您使用expect 设置请求期望,如果您没有得到 exact 相同的请求,则测试将失败,exact 数量次。但是,如果您将其设置为when,则后端会做出适当的响应,但它不会预期会有多少请求(如果有),因此不会通过测试。

    【讨论】:

    • 感觉还是不清楚。 'when' 应该像这样使用:“(when ever)应用程序要求 'some backend thing' 就给它这个”
    • 如果请求与期望不匹配,Expect 将抛出,因此测试失败。 'When' 没有期望,它会适当地响应请求,但如果没有请求到达,它不会失败。如果您想断言请求以某种格式出现,请使用“期望”;如果您不关心请求,请使用“何时”。
    猜你喜欢
    • 2014-02-19
    • 2012-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-30
    • 1970-01-01
    • 2010-10-02
    • 2011-12-12
    相关资源
    最近更新 更多