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

Jia*_*fei 23 angularjs angular-mock

$httpBackend.when('')和之间有什么区别$httpBackend.expect('')

我不知道这两种方法的区别.另外angularjs api doc对我没有帮助.

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

Umu*_*acı 24

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

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

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

因此,这意味着如果您设置了一个请求期望,expect那么如果您没有得到完全相同的请求,那么测试将会失败,确切的次数.但是,如果你设置它when,后端将适当地响应,但它没有预期会有多少请求(如果有的话),因此不会使测试失败.

  • 如果请求与预期不符,则Expect将抛出,因此测试失败.'当'没有期望时,它将适当地响应请求,但如果没有请求到达则不会失败.如果要以某种格式声明请求,请使用'expect'; 如果您不关心请求,请使用'when'. (2认同)