控制器的 Angular 中的 Jasmine 测试

2024-03-18

我收到以下错误: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(使用前将#替换为@)

控制器的 Angular 中的 Jasmine 测试 的相关文章

随机推荐