鉴于应用程序启动:
angular.module("starter", [ "ionic" ])
.constant("DEBUG", true)
.run(function() {
/* ... */
});
我将如何测试
DEBUG
的值?尝试时:
describe("app", function() {
beforeEach(function() {
module("starter");
});
describe("constants", function() {
describe("DEBUG", inject(function(DEBUG) {
it("should be a boolean", function() {
expect(typeof DEBUG).toBe("boolean");
});
}));
});
});
我只是得到
TypeError: 'null' is not an object (evaluating 'currentSpec.$modules')
at workFn (/%%%/www/lib/angular-mocks/angular-mocks.js:2230)
at /%%%/www/js/app_test.js:14
at /%%%/www/js/app_test.js:15
at /%%%/www/js/app_test.js:16
最佳答案
确保它在正确的位置被实例化。
在这种情况下,没有运行 beforeEach
来加载模块,因为 DEBUG
在 inject()
块中被 describe
编辑,而不是在 it
块中。以下工作正常:
describe("app", function() {
var DEBUG;
beforeEach(function() {
module("starter");
});
describe("constants", function() {
describe("DEBUG", function() {
it("should be a boolean", inject(function(DEBUG) {
expect(typeof DEBUG).toBe("boolean");
}));
});
});
});
关于angularjs - 在 Karma 中获取 Angular 常数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26733273/