我有一个快递服务器,我正在使用 vows 进行测试。我想从 vows 测试套件中运行服务器,这样我就不需要让它在后台运行以使测试套件工作,然后我可以创建一个运行服务器并测试它的蛋糕任务隔离。
在server.coffee
我创建(快速)服务器,配置它,设置路由并调用 app.listen(port) 时,如下所示:
# Express - setup
express = require 'express'
app = module.exports = express.createServer()
# Express - configure and set up routes
app.configure ->
app.set 'views', etc....
....
# Express - start
app.listen 3030
在我的简单routes-test.js
我有:
vows = require('vows'),
assert = require('assert'),
server = require('../app/server/server');
// Create a Test Suite
vows.describe('routes').addBatch({
'GET /' : respondsWith(200),
'GET /401' : respondsWith(401),
'GET /403' : respondsWith(403),
'GET /404' : respondsWith(404),
'GET /500' : respondsWith(500),
'GET /501' : respondsWith(501)
}).export(module);
在respondsWith(code)
功能上与誓言文档中的功能相似...
当我require
在上面的测试中服务器时,它会自动开始运行服务器并且测试运行并通过,这很好,但我不觉得我这样做是“正确”的方式。
我对服务器何时启动没有太多控制权,如果我想将服务器配置为指向“测试”环境而不是默认环境,或者在我测试时更改默认日志记录级别,会发生什么?
PS 我要将我的誓言转换为 Coffeescript,但现在它全部在 js 中,因为我正处于从文档中学习的模式!