Gro*_*fit 7 automated-tests node.js express
我有一个nodejs restful样式服务没有前端,它只接受数据,然后用它做一些事情.
我已经对我想要的大多数方法级别的东西进行了单元测试,但是现在我想基本上做一些自动化测试以证明它们一起工作.当我使用ASP.MVC和IIS时,它很容易,因为服务器始终打开,所以我只是设置场景(将虚拟guff插入DB)然后创建一个HttpRequest并将其发送到服务器并声明我得到了我期望的.
但是在nodejs中存在一些挑战,因为应用程序需要通过命令行或其他一些机制运行,所以假设我有一个app.js会开始监听,有没有办法在我之前自动启动它运行我的测试,然后在我的测试完成后关闭它?
我目前正在使用Yadda和Mocha进行测试,所以我可以保持它以BDD风格的方式编写,但是我希望Web应用程序的启动与我正在使用的框架无关.
gim*_*ete 10
只需公开一些启动和停止Web服务器的方法.你的app.js文件可能是这样的:
var app = express()
var server = null
var port = 3000
// configure your app here...
exports.start = function(cb) {
server = http.createServer(app).listen(port, function () {
console.log('Express server listening on port ' + port)
cb && cb()
})
}
exports.close = function(cb) {
if (server) server.close(cb)
}
// when app.js is launched directly
if (module.id === require.main.id) {
exports.start()
}
Run Code Online (Sandbox Code Playgroud)
然后在你的测试中你可以做这样的事情(基于mocha的例子):
var app = require('../app')
before(function(done) {
app.start(done)
})
after(function(done) {
app.close(done)
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1167 次 |
| 最近记录: |