AngularJS Mock - 期待vs何时

时间:2013-11-02 22:15:10

标签: angularjs mocking

expect AngularJS模块中whenngMock之间的区别是什么?

他们都提供了回应,所以你什么时候才能使用另一个呢?

我在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'
                    };
                });
            }
        };
    }]);

}());

1 个答案:

答案 0 :(得分:3)

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

  

请求期望与后端定义

     

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

     

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

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