我正在为一个角度控制器编写jasmine测试用例,它有一个init函数,有一个promises数组要解析:
(function () {
angular.controller("xyz", ['$scope', "Utility", "Api",
function ($scope, Utility, Api) {
var locals = $scope.locals = {
id: 1,
amount: 2,
products: 3
};
function init() {
locals.busyPromise = Utility.resolveAll(
{
name: 'a',
promise: Api.get,
then: function (response) { locals.id = 2; }
},
{
name: 'b',
promise: Api.find,
then: function (response) { locals.amount = 4; }
}
).then(function (response) { locals.products = 6; });
}
init();
}
])
})();
Utility是一个外部脚本,它解析数组中的每个promise并执行then函数来设置本地属性。一旦解决了数组中的所有promise,它就会移动到resolveAll的函数并执行它。
我的问题是,如何在Jasmine中注入依赖项时模拟Utility.resolveAll。在我的情况下,无论我尝试什么,它永远不会进入个人承诺的块然后直接进入当时的resolveAll块。
在这里我会做什么:
首先,模拟qazxsw poi和qazxsw poi服务
Utility
然后在测试中:
Api