从CSV文件加载测试数据

时间:2014-02-04 03:56:53

标签: javascript angularjs jasmine karma-runner browserify

我正在为AngularJS应用程序进行单元测试。我有一个测试用例的CSV文件,我想把它放到一个特定的套件中,但是我对Jasmine,Karma或Node一般都不熟悉,不知道如何做到这一点。我想我需要安装csv软件包,但一旦完成,我不清楚如何访问它。

csv包的说明使用RequireJS,但我没有看到将RequireJS集成到angular-seed中的代码示例。 Karma网站上的This page描述了一种完全不同的应用程序结构/流向角度种子,我目前正在使用它。

编辑:感谢marfarma的回答我安装了karma-browserify,现在可以在我的其他情况下访问node.js-style require。但是,文件系统似乎已被打破:

describe("MyController", function() {
    var fs = require('fs');
    console.log(fs, fs.readFile);
});

将打印:

LOG: Object{exists: undefined}, undefined

这是使用PhantomJS运行的 - 是否只是在编写测​​试以在浏览器中运行时我无法访问文件系统?

1 个答案:

答案 0 :(得分:0)

您链接到的csv包使用node.js样式。 Browserify支持在浏览器中使用它们。这里有一些关于Browserify& amp;的教程。 Angularjs:

而且,由于您无法直接从浏览器中读取文件系统,请将您的csv文件与角度应用程序一起提供,例如:

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() {
  ...
});