测试nodejs服务器代码而不运行服务器

时间:2017-05-04 04:40:05

标签: node.js unit-testing

nodejs测试新手。

我有一个运行一些复杂服务器端逻辑的nodejs服务器,我正在考虑为该代码构建一个单元测试运行器。我 想要运行服务器并测试发送请求,因为它没有公开我想要在服务器端测试的所有模块和功能。这更像是集成测试。我只想导入那些作为AMD模块编写的服务器端文件,并在单元测试中逐个调用它们的函数。

最好的方法是做什么?

1 个答案:

答案 0 :(得分:1)

您需要首先在当前项目中安装unit-test和assertion框架。然后你还想添加requirejs(r.js)。

我们目前正在使用mochajs进行单元测试,should作为断言库。两者都有很好的采用和功能支持测试Node.js.

npm install mochajs shouldjs requirejs --save-dev

这将向本地node_modules添加三个包,并将它们保存在package.json的devDependencies中。

继续在项目中设置单元测试目录并创建一个新的测试文件,[your_module_name] _test.js:

const should = require('should'),
      foo = require('foo');

describe('foo', () => {
  it('returns the letter a', () => {
    foo().should.eql('a');
  });
});

在测试文件中,您将需要测试模块,然后照常进行单元测试。

然后,您可以通过r.js

运行测试
./node_modules/requirejs/bin/r.js [your_test_dir]/[your_module_name]_test.js

您还可以全局安装mochajs,然后只需运行mocha命令,而不是使用本地node_modules中的bin。

祝你好运,希望这会有所帮助。