У меня есть экспресс-сервер, который я тестирую с помощью обета. Я хочу запустить сервер из набора тестовых наборов, так что мне не нужно, чтобы он работал в фоновом режиме, чтобы тестовый набор работал, тогда я могу просто создать задачу торта, которая запускает сервер, и проверяет его на изоляция.
В 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
сервер в вышеприведенном тесте, он автоматически начинает запускать сервер, а тесты запускаются и проходят, что отлично, но я не чувствую, что делаю это "правильно".
У меня нет большого контроля при запуске сервера, и что произойдет, если я хочу настроить сервер для указания на "тестовую" среду, а не на стандартную, или изменить уровень ведения журнала по умолчанию для тестирования im?
PS Я собираюсь превратить свои обеты в Coffeescript, но на данный момент все это в js как im в режиме обучения из документов!