2016-10-19 5 views
1

mochaテスト間の接続などのリソースを共有するにはどうすればよいですか?mochaテスト間でリソースを共有

cookies.test.js

describe('Cookies', function() { 
    it('setCookie()', function() { 
    connection.setCookie('foo', 'foo-content') 
    connection.cookies['foo'].should.equal('foo-content') 
    } 
} 

shutdown.test.js

一度だけ初期化されながら、これらの2つのファイル間で共有すること自体を connection可能性がどのように
describe('Connection', function() { 
    it('shutdown()', function() { 
    connection.shutdown() 
    connection.connected.should.be.false() 
    } 
} 

? 実際には何百ものテストがあり、それを共有することが不可欠です。

答えて

1

connectionオブジェクトには状態があります。テスト間の状態の共有は悪い習慣とみなされます。

もしあなたがに置き換えなければ、それは何らかの無効な理由で共有する必要がありますが、モカはこれを手伝ってくれません。あなたができることは、モジュールを作成することです:

var connection = new Connection(...); 

module.exports = connection; 

そして、それぞれのテストで、モジュールからあなたの接続を取得します。モジュールに名前が付いている場合TestCollectionテストファイルが含まれている必要があります

var connection = require('TestConnection'); 

をモジュールが一度だけロードされているので、すべてのテストファイルは、同じ接続を取得します。

+1

ありがとうございました。しかし既にこれを行っていますが、非同期であるため、各テストで '' connected''イベントを処理する必要があります。私が本当に探しているのは、 "結果"が保存されている 'before()'です。これは可能ですか? –

関連する問題