$ httpBackend中expect和when之间的区别是什么

时间:2015-01-14 14:54:13

标签: angularjs angular-mock

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

我不知道这两种方法之间的区别。此外,angularjs api doc对我没有帮助。

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

1 个答案:

答案 0 :(得分:24)

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

  

来自:https://docs.angularjs.org/api/ngMock/service/ $ httpBackend
  请求期望提供了一种方法,可以对应用程序发出的请求进行断言,并为这些请求定义响应。如果没有做出预期的请求或者订单的顺序错误,测试将失败。

     

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

因此,这意味着如果您使用expect设置请求期望,如果您没有获得完全相同的请求,则测试将失败,完全次数。但是,如果您使用when进行设置,则后端将做出相应的响应,但它没有预期会有多少请求(如果有的话),因此不会使测试失败。