不能在量角器中使用角度注入的结果。错误:......不是函数

时间:2016-10-24 15:26:55

标签: angularjs protractor

我正在为我们的角应用程序运行一些量角器测试。对于我的一个步骤,我想使用角度服务来测试一些事情。该服务如下所示:

'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不是函数?我错过了为什么返回的对象具有空的对象属性,例如:{}而不是函数?谢谢你的帮助。

0 个答案:

没有答案