expect
AngularJS模块中when
和ngMock
之间的区别是什么?
他们都提供了回应,所以你什么时候才能使用另一个呢?
我在angularJS.com上阅读了文档,但对我来说并不是很清楚。
这是我想要使用Jasmine测试的服务,所以我应该期望调用端点,还是应该将已返回的已知值存入?
(function () {
'use strict';
var app = angular.module('cs');
app.service('PlateCheckService', ['$http', function ($http) {
return {
checkPlate: function (plateNumber) {
return $http.post('PlateCheck/Index', {
plateNumber: plateNumber
}).then(function (response) {
return {
message: response.data.VehicleAtl === null ? 'Clean' : 'Hot',
alertClass: response.data.VehicleAtl === null ? 'alert-success' : 'alert-danger'
};
});
}
};
}]);
}());
答案 0 :(得分:3)
文档中的解释对我来说非常清楚:
请求期望与后端定义
请求期望提供了一种方法,可以对应用程序发出的请求进行断言,并为这些请求定义响应。如果没有做出预期的请求或者订单的顺序错误,测试将失败。
后端定义允许您为应用程序定义伪后端,如果发出特定请求,它就不会断言,如果发出请求,它只返回训练有素的响应。无论请求是否在测试期间进行,测试都将通过。
因此,如果您使用when()
,您可以按任何顺序执行任何请求,并且测试不会失败。如果您使用expect()
,那么如果后端未收到预期请求,则测试将失败,其顺序与预期请求的顺序相同。