Javascript 从CSV文件加载测试数据
我正在为AngularJS应用程序进行单元测试。我有一个CSV的测试用例文件,我想把它放到一个特定的套件中,但我对Jasmine、Karma或Node一般来说还不太熟悉,不知道如何做到这一点。我想我需要安装这个软件包,但一旦安装完成,我就不清楚如何访问它 csvJavascript 从CSV文件加载测试数据,javascript,angularjs,jasmine,karma-runner,browserify,Javascript,Angularjs,Jasmine,Karma Runner,Browserify,我正在为AngularJS应用程序进行单元测试。我有一个CSV的测试用例文件,我想把它放到一个特定的套件中,但我对Jasmine、Karma或Node一般来说还不太熟悉,不知道如何做到这一点。我想我需要安装这个软件包,但一旦安装完成,我就不清楚如何访问它 csvcsv包的说明使用了RequireJS,但我还没有看到将RequireJS集成到seed中的代码示例。在Karma的网站上,我描述了一个与我目前使用的angular seed完全不同的应用程序结构/流程 编辑:感谢marfarma的回答,
csv
包的说明使用了RequireJS,但我还没有看到将RequireJS集成到seed中的代码示例。在Karma的网站上,我描述了一个与我目前使用的angular seed完全不同的应用程序结构/流程
编辑:感谢marfarma的回答,我已经安装了karma browserify
,现在可以在我的rest案例中访问node.js-stylerequire
。但是,文件系统似乎已损坏:
describe("MyController", function() {
var fs = require('fs');
console.log(fs, fs.readFile);
});
将打印:
LOG: Object{exists: undefined}, undefined
这是使用
PhantomJS运行的
-是不是在编写要在浏览器中运行的测试时,我无法访问文件系统?您链接到的csv包使用node.js样式要求。支持在浏览器中使用它们。以下是一些关于Browserify和Angularjs的教程:
var request = require('request');
var done = false;
request("http://localhost:8080/data.csv", function (error, response, body) {
if (!error && response.statusCode == 200) {
console.log(body) // body is the csv data -- parse and save for later use
}
done = true;
})
waitsFor(function() {
return done;
}, "csv data fetch never completed.", 10000);
// use it
describe('it should work',function() {
...
});
谢谢你的提示。我已经开始集成karma browserify,但它在我的测试套件中产生了一些问题。这个插件是否要求我
browserify
我的常规应用程序源文件?具体来说,我在每次(模块('app'))之前调用代码>由于类型错误而失败,因此只有我的非角度UTIL单元测试正在运行。好的,我意识到模块
是由browserify
定义的,它的定义隐藏了角度模拟测试代码提供的模块
功能。我将对模块的调用替换为angular.mock.module
,一切正常!谢谢……或者不谢谢。请参阅我的编辑。我想我可能是弄错了。“难道这只是因为我在编写在浏览器中运行的测试时无法访问文件系统吗?”-是的,请转到我的answer@marfarma谢谢我试试那种方法。我假设使用jasmine node
进行测试可以缓解这一问题,但我更喜欢karma
,所以我必须咬紧牙关。