pat*_*rit 3 rest unit-testing mongoose node.js express
我有一个使用Express,Mongoose和config的REST API服务器.我想对我的API进行单元测试.基本上,在端口x上打开一个临时Web服务器,在端口y上打开一个空的mongo-database,执行一些API调用(包括获取和放置)并验证我得到的内容,然后关闭临时服务器并在测试完成后删除测试数据库.做这个的最好方式是什么?我一直在看mocha/rewire,但不知道如何设置临时服务器和数据库,也不确定最佳实践是什么.
小智 6
我使用Jenkins(持续集成服务器)和Mocha来测试我的应用程序,我发现自己遇到了和你一样的问题.我配置了Jenkins所以它会执行这个shell命令:
npm install
NODE_ENV=testing node app.js &
npm mocha
pkill node
Run Code Online (Sandbox Code Playgroud)
这将运行服务器以执行测试,然后将其杀死.这也设置了NODE_ENV环境变量,因此我可以在测试时在不同的端口上运行服务器,因为Jenkins已经使用了端口8080.
这是代码:
app.js:
...
var port = 8080
if(process.env.NODE_ENV === "testing")
port = 3000;
...
Run Code Online (Sandbox Code Playgroud)
test.js:
var request = require('request'),
assert = require('assert');
describe('Blabla', function() {
describe('GET /', function() {
it("should respond with status 200", function(done) {
request('http://127.0.0.1:3000/', function(err,resp,body) {
assert.equal(resp.statusCode, 200);
done();
});
});
});
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5510 次 |
| 最近记录: |