我正在为我们的角应用程序运行一些量角器测试。对于我的一个步骤,我想使用角度服务来测试一些事情。该服务如下所示:
'use strict';
define(['services/applicationServices'], function (module) {
module.factory('myService', ['otherService', function(otherService){
function checkArray(array){
//do stuff with array
return result;
}
function getArray(id){
//do stuff
return result;
}
return {
checkArrayOfId: function(id){
return checkArray(getArray(id));
}
};
}]);
});
在我的e2e测试中检索服务的角度注入看起来像这样(service-helpers.js):
module.exports = {
getService: function () {
return browser.executeAsyncScript(function (callback) {
var service = angular.element(document.body).injector().get('myService');
return callback(service);
})
}
};
但是当我尝试使用返回的服务对象的方法时,我在节点中收到错误:service.checkArrayOfId不是函数:
var serviceHelpers = require('../common/service-helpers.js');
var util = require('util');
serviceHelpers.getService().then(function(service){
console.log(util.inspect(service, false, null));
//logs this in node: { checkArrayOfId: {} }
service.checkArrayOfId(109);
//error: service.checkArrayOfId is not a function.
},
function(error){
console.log(error.message);
});
那么,为什么service.checkArrayOfId不是函数?我错过了为什么返回的对象具有空的对象属性,例如:{}
而不是函数?谢谢你的帮助。