鉴于应用程序启动:

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 来加载模块,因为 DEBUGinject() 块中被 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/

10-12 12:21