$httpBackend.when('')
和$httpBackend.expect('')
有什么区别?
我不知道这两种方法之间的区别。此外,angularjs api doc对我没有帮助。
API文档链接:https://docs.angularjs.org/api/ngMock/service/ $ httpBackend
答案 0 :(得分:24)
$httpBackend.expect
- 指定请求期望
$httpBackend.when
- 指定后端定义
来自:https://docs.angularjs.org/api/ngMock/service/ $ httpBackend
请求期望提供了一种方法,可以对应用程序发出的请求进行断言,并为这些请求定义响应。如果没有做出预期的请求或者订单的顺序错误,测试将失败。后端定义允许您为应用程序定义伪后端,如果发出特定请求,它就不会断言,如果发出请求,它只返回训练有素的响应。无论请求是否在测试期间进行,测试都将通过。
因此,这意味着如果您使用expect
设置请求期望,如果您没有获得完全相同的请求,则测试将失败,完全次数。但是,如果您使用when
进行设置,则后端将做出相应的响应,但它没有预期会有多少请求(如果有的话),因此不会使测试失败。