2017-12-14 20 views
1

私は.netソリューションのメソッドのためにVS 2015に新しいユニットテストプロジェクトを追加しました。テストケースを実行している間に、ウェブ設定アプリの設定値はnullであり、完全なテスト、実際にはconfigキーの値はWebアプリケーションの実行中に利用可能でアクセス可能ですが、ユニットテスト中は値はnullです。ビジュアルスタジオユニットテスト中にウェブ設定アプリの設定値がヌル

誰でも私を助けてください。

+0

テストプロジェクトには、同様の設定を持つ 'app.cofig'が必要です。ユニットテストは別のアプリドメインで実行されるので、独自の設定ファイルが必要です。 – Nkosi

+0

理論上は、単体テスト中にファイルを読むべきではありません。 [確認してください](https://stackoverflow.com/questions/377423/best-practices-for-file-system-dependencies-in-unit-integration-tests)。 [Microsoft Fakes](https://msdn.microsoft.com/en-us/library/hh549176.aspx)を使用して、システムコンポーネント(またはその他のサードパーティ製アセンブリ)からコードを分離することができます。 –

+0

Nkosiさん、本当にありがとう – ravi

答えて

0

テストプロジェクトは、Webプロジェクトに存在するような同様の設定でapp.cofigを必要とし、事前に

おかげでテストされています。

ユニットテストは個別のアプリドメインで実行されるため、独自の設定ファイルが必要です。

ConfigurationManagerは実行中の現在のアプリケーションドメインの設定ファイルを読み込み、テストプロジェクト用にapp.configファイルを作成し、希望の設定をコピーしてテストを期待通りに実行できるようにします。

この問題は、ConfigurationManagerの使用に関して実装の懸案事項とどのように強く結びついているかを明らかにしています。ユニットアクセスを抽象化して単体テストを孤立して行うことができます。

関連する問題