繁体   English   中英

TypeError:'undefined'不是构造函数(评估'new JdRes())

[英]TypeError: 'undefined' is not a constructor (evaluating 'new JdRes())

我正在为角度控制器编写茉莉花测试规范。 在这里,我得到错误TypeError: 'undefined' is not a constructor (evaluating 'new JdRes()) - 尽管我已将其定义为

JdRes = jasmine.createSpy('JdRes');

控制器中的代码段如下

function (myService, $scope, $attrs, $q, $parse) {
    'use strict';

    var JdRes, resource;

    JdRes = myService('JdRes');
    resource = new JdRes();
}

根据您提供的信息,我可以得出的唯一结论是jasmine.createSpy('JdRes')返回undefined

这意味着jasmine.createSpy没有return语句,或者它尝试返回值为undefined东西。 您应该检查函数是否确实具有return语句,如果确实有,则返回的值不是undefined 我无法告诉你什么。

当您为函数注入不同数量的项目时,也会发生这种情况 - 无论哪种方式,我相信。 例如:

(function () {
'use strict';

angular.module('controllers').controller('myController', MyController);

MyController.$inject = ['$scope',
    '$state',
    '$compile',
    'aService',
    'aServiceNotDefinedInConstructorArgs'];

function MyController('$scope',
    '$state',
    '$compile',
    'aService') {

    var vm = this;
    ...
}

这里的区别是aServiceNotDefinedInConstructorArgs正在注入,但不是MyController的参数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM