7

フロントエンドのないnodejsの安らかなスタイルのサービスがあります。データを受け入れるだけで、それを使って何かをします。

必要なメソッドレベルのもののほとんどを単体テストしましたが、基本的にいくつかの自動テストを実行して、すべてが連携して機能することを証明したいと考えています。ASP.MVC と IIS を使用しているときは、サーバーが常にオンになっているので簡単です。そのため、シナリオをセットアップし (ダミーのガフを DB に挿入)、HttpRequest を作成してサーバーに送信し、期待どおりの結果が得られることをアサートします。 .

ただし、アプリケーションはコマンドラインまたはその他のメカニズムを介して実行する必要があるため、nodejs にはいくつかの課題があります。テストを実行し、テストが終了したら閉じますか?

私は現在、テスト用に Mocha で Yadda を使用しているため、BDD スタイルの方法で記述し続けることができますが、使用しているフレームワークに依存しない Web アプリの開始を望んでいます。

4

3 に答える 3

10

ウェブサーバーを起動および停止するメソッドをいくつか公開するだけです。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()
}

そして、テストで次のようなことができます (モカベースの例):

var app = require('../app')

before(function(done) {
  app.start(done)
})

after(function(done) {
  app.close(done)
})
于 2013-11-02T13:49:21.257 に答える