用Karma装载夹具

时间:2013-08-27 22:34:04

标签: fixtures karma-runner

我的配置文件中的Karma文件属性是

files: [
            // Program files
            'public/js/init.js',

            // Load mocks directly from bower
            'bower_components/angular-mocks/angular-mocks.js',

            // Fixtures
            {
                pattern: 'test/fixtures/*.json',
                watched: true,
                served: true,
                included: false
            },

            // Specs
            'test/unit/**/*.spec.*'
        ]

其中一个灯具如下:test / fixtures / languages.json

{
    "ab":{
        "name":"Abkhaz",
        "nativeName":"аҧсуа"
    },
    "aa":{
        "name":"Afar",
        "nativeName":"Afaraf"
    },
    "af":{
        "name":"Afrikaans",
        "nativeName":"Afrikaans"
    }
}

如何在expect语句的变量中加载上面提到的json?

1 个答案:

答案 0 :(得分:1)

你可以用ajax手动完成,或者你可以使用带有requirejs和requirejs json文件加载器插件的karma ...

var xhr = new XMLHttpRequest();
xhr.open('get', '/base/test/fixtures/languages.json', false);
xhr.send();
console.log(xhr.status, xhr.responseText); //200, {...}

Karma在浏览器中运行,所以你可以用业力来做所有事情,你可以在浏览器中正常做什么...如果你想使用服务器端生成的信息,请注意业力确实有自己的服务器,所以您的测试在不同的域下运行,您应该使用CORS从应用程序服务器获取数据。通过客户端静态文件,如果您在karma配置文件中注册其模式,这不应该导致问题...