呼び出す実稼働コードを分割しapp.listen
、mocha テストの実行中に実行されないようにする必要があります。すべてのルートと設定コードを入れてから、リッスンを開始したり、データベースに接続したりするためのほんの少しのコードをapp/index.js
含む別のファイルを用意します。しかし、アプリケーションの詳細のほとんどは構成されているので、スーパーテスト。app/server.js
app/index.js
//index.js
var app = require("express")();
app.get("/", function (req, res) {
res.type("text");
res.send("Welcome home");
});
module.exports = app;
//server.js
#!/usr/bin/env node
var app = require("./index");
app.listen(3000);
//index.mocha.js
var app = require("./index");
var request = require("supertest")(app);
var expect = require("expectacle");
describe("the home page", function () {
it("should welome me in plain text", function(done) {
request.get("/")
.expect(200)
.expect("Content-Type", "text/plain; charset=utf-8")
.end(function (error, result) {
expect(error).toBeFalsy();
expect(result.text).toBe("Welcome home");
done();
});
});
});