【发布时间】:2017-05-04 14:39:02
【问题描述】:
nodejs 测试新手。
我有一个 nodejs 服务器,它运行一些复杂的服务器端逻辑,我正在考虑为该代码构建一个单元测试运行程序。我确实不想要运行服务器并测试发送它的请求,因为这不会公开我想在服务器端测试的所有模块和功能。那将更像是集成测试。我只是想导入那些写成AMD模块的服务器端文件,并在单元测试中一一调用它们的功能。
最好的方法是什么?
【问题讨论】:
标签: node.js unit-testing
nodejs 测试新手。
我有一个 nodejs 服务器,它运行一些复杂的服务器端逻辑,我正在考虑为该代码构建一个单元测试运行程序。我确实不想要运行服务器并测试发送它的请求,因为这不会公开我想在服务器端测试的所有模块和功能。那将更像是集成测试。我只是想导入那些写成AMD模块的服务器端文件,并在单元测试中一一调用它们的功能。
最好的方法是什么?
【问题讨论】:
标签: node.js unit-testing
您首先需要在当前项目中安装一个单元测试和断言框架。然后你还需要添加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。
祝你好运,希望这会有所帮助。
【讨论】:
require('path/to/amd/module') 在节点中是否适合您?