6

私は単体テストに慣れていないので、大きな誤解をしている可能性がありますが、WCF サービスの単体テストをいくつか作成するように依頼されました。ストアド プロシージャを実行し、結果を返す非常に単純なサービスです。私の操作の 2 行目は次のとおりです。

string conn = ConfigurationManager
    .ConnectionStrings["AtlasMirrorConnectionString"].ConnectionString;

サービスを展開するときはすべて正常に動作しますが、単体テストでは、構成ファイルが見えなくなるようです。 ConfigurationManager.ConnectionStrings["AtlasMirrorConnectionString"]null 参照になり、それに応じてスローされます。

テストに構成ファイルを含めるにはどうすればよいですか? 現在、私がテストできる唯一の動作は、不足している構成ファイルの処理です。これはあまり役に立ちません。

4

3 に答える 3

5

何度も何度も質問され、先週も今週も答えてくれました:)

別のプロジェクト (VS で生成されたテスト プロジェクト、クラス ライブラリなど) に単体テストがある場合は、その単体テスト プロジェクトのアプリ構成を作成し、動作するプロジェクトと同じ構成キーを配置します。

もちろん、これらのキーを特定のテスト値でカスタマイズしたい場合があるため、単純化していますが、最初のコピーとして、別のデータベースやマシンなどを指す場合に備えて、何が機能するかをカスタマイズします... :)

于 2011-09-01T14:44:34.007 に答える
3

テスト クラスまたはメソッドをDeploymentItemAttributeで修飾して、構成ファイルをテスト ディレクトリにデプロイする必要があります。

TestClass で次のようなものを使用します (これは、テストクラスにローカルな app.config のコピーがあることを前提としています)。

[DeploymentItem("app.config")]
于 2011-09-01T14:43:26.543 に答える
3

単体テストに常にプロジェクトと同じ値を持たせたい場合は、テスト プロジェクトでビルド後のイベントとして次の行を使用できます。

copy /Y "$(SolutionDir)ProjectName\App.config" "$(TargetDir)TestProjectName.dll.config"
于 2013-12-20T15:12:19.350 に答える