1

テスト フレームワーク (nodeunit、mocha、should) に各テストの「必要な」モジュールをリロードするように指示する方法はありますか?

私のモジュールには複数のテストがあり、Node のモジュール システムは最初のrequire().スイートです。)

何が起こっているのかというと、TDD が次のようなモジュールを作成するように私を駆り立てたということです。

// my module
module.exports = function(dep1, dep2) {
    // code goes here, makes use of dep1/dep2
}

私の最初のテストでは、dep1 のモックを挿入します。次のテストでは、dep2 のモックを挿入します。しかし、require()常にモジュールの同じインスタンスを返すため、2 番目のテストのモックが適切に挿入されることはありません。テストはすべて同じテスト対象オブジェクトで実行されますが、これは悪いことです。

1 つの解決策は、「new」をサポートするようにモジュールを再設計し、毎回新しいインスタンスを返すことです。そのルートをたどる前に、テスト環境でモジュールを強制的にリロードする方法はありますか?

4

0 に答える 0