私は、誓いを使ってテストしている高速サーバーを持っています。テストスイートが動作するようにバックグラウンドで実行する必要がないように、サーバーを実行してテストしているケーキタスクを作成できます分離。テスト用に誓約からサーバーを起動する正しい方法は何ですか?
私が(表現)サーバー、次のようにルートを設定し、app.listen(ポート)と呼ばれる、それを構成し作成したserver.coffee
で
:私は私の簡単なroutes-test.js
で
# 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
:
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);
を
abovでI require
サーバーrespondsWith(code)
が...誓いドキュメント内の1つの機能的に似ている
eテストでは、自動的にサーバーの稼働を開始し、テストが実行され、パスします。これは素晴らしいことですが、私は「正しい」方法でやっているように感じません。
私は、サーバーの起動時期を管理していませんし、デフォルトの設定ではなく「テスト」環境を指すようにサーバーを構成する場合や、imテスト時のデフォルトのログ出力レベルを変更する場合はどうなりますか?
PS私は誓約をCoffeescriptに変換しようとしていますが、今はそのすべてがドキュメントの学習モードのIMとしてjsにあります!
[Pact](http://reid.github.com/pact/)を見てみるとよいでしょう - それは、誓約を使ってHTTPサーバーをテストするためです。 – Skilldrick
ありがとうございますSkilldrick、Pactをチェックします! – cjroebuck