10

いくつかの構成設定に依存するいくつかのヘルパークラスのxUnitテストを作成しています。通常、実行中のプロジェクトのApp.configまたはWeb.configに格納されています。

構成は次のようになります。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add key="FileNamePattern" value="\\d{8}_\\w{4:20}\.png"/>
    <!-- and the likes -->
  </appSettings>
</configuration>

GUIランナー(xunit.gui.clr4.exe)とxUnitコンソールランナー(Jenkins CIサーバー上)でxUnit1.9を実行しています。現在、xunit.gui.clr4.exe.configファイルとxunit.console.exe.configファイルを手動で設定することで、これらの構成値をテスト環境に「挿入」できます。ただし、これは面倒でエラーが発生しやすくなります。

これらの構成設定をフィクスチャでモックすることもできます。しかし、10個の異なるファイルで同じフィクスチャを使用することはかなり反復的です。

テストプロジェクトにApp.configファイルを提供するなど、xUnitを使用してこれらの構成設定をモックするより良い方法はありますか?

4

2 に答える 2

12

あなたのコードapp.configAssemblyName.dll.config.ロード時に存在する場合は設定)。

そもそもDIの原則を使用してそのような依存関係を削除することは明らかに害はありませんが、最初に実際にテストする前にコードをいじらないでください。

DRY に保つには、app.config を中央の場所に置き、リンクとして追加します (ダイアログの [開く] ボタンの矢印を使用)。(はい、それには気に入らない点がたくさんあります。最も害の少ないアプローチだと思われる場合にのみ使用してください。)


注意すべきことの 1 つは、アセンブリの再読み込みを要求しない限り、変更が GUI ランナーに再読み込みされないことです。

于 2012-05-25T22:32:33.500 に答える