【问题标题】:Loading fixtures with Karma使用 Karma 加载夹具
【发布时间】:2013-08-27 22:34:04
【问题描述】:

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

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.*'
        ]

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

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

如何将上述json加载到expect语句的变量中?

【问题讨论】:

    标签: fixtures karma-runner


    【解决方案1】:

    您可以使用 ajax 手动完成,也可以将 karma 与 requirejs 和 requirejs json 文件加载器插件一起使用...

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-06
      • 2015-12-19
      • 1970-01-01
      • 2016-02-26
      • 2019-04-23
      • 2016-01-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多