鉴于应用程序启动:
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
正在 describe 中进行
block ,而不是 inject()
编辑it
block 。以下工作正常:
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/