gpt4 book ai didi

angularjs - Controller 的 Angular Jasmine 测试

转载 作者:行者123 更新时间:2023-12-02 22:51:09 25 4
gpt4 key购买 nike

我收到以下错误:TypeError:未定义不是函数问题是公共(public)的是模块和工厂,问题出在我的线上

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)到你的函数中。要注入(inject),您需要像在 beforeEach 中那样调用 inject。所以,如果你想注入(inject)那个工厂,你需要这个:

it("message", inject(function(common) {
...
}));

这就是你如何注入(inject)。这应该可行。

关于angularjs - Controller 的 Angular Jasmine 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20701764/

25 4 0
文章推荐: sonarqube - 如何从 2 个扫描仪获取 SonarQube 中的合并项目结果?
文章推荐: angular - 类型 'timeout' 上不存在属性 'Observable'