1

expectAngularJS 模块和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'
                    };
                });
            }
        };
    }]);

}());
4

1 回答 1

3

文档中的解释对我来说非常清楚:

请求期望与后端定义

请求期望提供了一种对应用程序发出的请求进行断言并为这些请求定义响应的方法。如果未发出预期的请求或按错误的顺序发出请求,则测试将失败。

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

因此,如果您使用when(),您可以按任何顺序执行任何请求,并且测试不会失败。如果你使用expect(),那么如果后端没有收到预期的请求,测试将失败,顺序与预期的相同。

于 2013-11-02T22:22:08.260 回答