我收到以下错误:TypeError: undefined is not a function
问题是公共的是模块和工厂,问题出在我的线上
var ctrl = $controllerConstructor("resetPasswordSentScreen", { $scope: scope, common: common});
这是完整的测试:
describe('resetPasswordSentScreen', function () {
var scope, $controllerConstructor;
beforeEach(module('common', 'app'));
beforeEach(inject(function($controller, $rootScope) {
scope = $rootScope.$new();
$controllerConstructor = $controller;
}));
it('it should navigate to the correct url when backToLogin is called ', function (common) {
var ctrl = $controllerConstructor("resetPasswordSentScreen", { $scope: scope, common: common });
var mocklocation = sinon.stub({ url: function () {}});
expect(scope.backToLogin()).toBe(mocklocation.url);
});
});
这不是问题,问题是你不能像在代码中那样将东西注入到你的函数中。要注入你需要调用inject
就像你在beforeEach
。所以,如果你想注入那个工厂,你需要这个:
it("message", inject(function(common) {
...
}));
这就是你如何注射。那应该有效。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)