【发布时间】:2014-02-25 02:34:07
【问题描述】:
谁能在 PLUNKER 中为我提供一个示例,说明如何为业力/茉莉花测试加载 JSON 文件。我想从 JSON 文件中读取我正在编写的测试用例的数据。我一直在搜索,但他们没有提到明确的示例关于怎么做?如果有人可以提供示例,我将不胜感激。
【问题讨论】:
标签: angularjs jasmine karma-runner
谁能在 PLUNKER 中为我提供一个示例,说明如何为业力/茉莉花测试加载 JSON 文件。我想从 JSON 文件中读取我正在编写的测试用例的数据。我一直在搜索,但他们没有提到明确的示例关于怎么做?如果有人可以提供示例,我将不胜感激。
【问题讨论】:
标签: angularjs jasmine karma-runner
您可以使用 require 加载外部 json 数据文件
var data = require('./data.json');
console.log(data);
// Your test cases goes here and you can use data object
【讨论】:
require 的某些原因?
data.json.js。解决方法是添加一个虚假的 URL 参数,例如 require('./data.json?test=')。这将变成data.json?test=.js,它仍然会找到文件。
设置查找文件的路径,在这种情况下,我的文件 (staticData.json) 位于 /test 文件夹下。
jasmine.getFixtures().fixturesPath = 'base/test/';
staticData= JSON.parse(jasmine.getFixtures().read("staticData.json"));
您还必须在 karma.conf.js 文件中添加模式,例如:
{ pattern: 'test/**/*.json', included: false, served: true}
【讨论】:
您想从网络服务器或本地文件系统读取 JSON 文件吗?没有人能给出从 Plunker 从本地文件系统加载的示例,因为它在 Web 浏览器中运行并且被拒绝访问文件系统。
这是一个如何在任何 Node.js 程序中从磁盘加载 JSON 文件的示例,这应该适用于 Karma/Jasmine:
var fs = require('fs');
var filename = './test.json';
fs.readFile(filename, 'utf8', function (err, data) {
if (err) {
console.log('Error: ' + err);
return;
}
data = JSON.parse(data);
console.dir(data);
});
【讨论】: