1

私は Heroku からいくつかの環境変数を持っており、読みやすくするために、読みやすくするためにそれらをグローバル変数に割り当てる傾向があります。

ACCESS_TOKEN = process.env.ACCESS_TOKEN

テストでその値を変更したいと思います。rewiresandboxed-moduleを試しました。ただし、どちらもグローバル変数を直接設定していますが、coffeescript 変数は無名関数でラップされています

--bareこれを回避する方法はありますか、またはコードをテストしたい場合は本当に使用する必要がありますか?

4

1 に答える 1

0

私はノードに精通していませんが、私が使用するアプローチ、および他のテクノロジーで使用したアプローチは、テストで必要なときにスタブまたはモックオブジェクトに交換できるオブジェクトにグローバルまたは外部依存関係をラップすることです。

値をACCESS_TOKENに格納するのではなく、herokuEnvironmentオブジェクトを作成し、それにメソッドaccessToken()を指定したとします。プロパティを使用する必要がある場合は常に、オブジェクトを挿入します。次に、本番環境では、そのメソッドはprocess.env.ACCESS_TOKENを呼び出します。テスト状況に注入するための安全なバージョンが必要な場合は、{accessToken:function(){return'foo';}}を指定するだけです。

于 2013-02-22T14:13:38.853 に答える