1

こんにちは、単体テストとは何か、単体テストを適切にコーディングする方法を理解するために、The Art of Unit Testing: With Examples in .Netを読み始めました。

最初に、本の中で、著者は Visual Studio ウィッチの統合されたユニット テスト ツールを使用するつもりだと言いましたが、それは NUnit と呼ばれるものだと思いました。私は間違っていましたが、ユニット テストの原則は両方で同じでなければならないため、問題はありませんでした (正しい)間違っていたら私)

PCにNUnitをインストールしようとしましたが、x64 Windows 8がインストールされています.これは私がテストしようとしているコードです:

 public class LogAnalyzer {
    public bool IsValidLogFileName(string fileName) {
        if (!fileName.EndsWith(".slf")) {
            return false;
        }
        return true;
    }
}

そして、これはテストを行うコードです:

[TestFixture]
public class LogAnalyzerTests {
    [Test]
    public void IsValidFileName_validFileLowerCased_ReturnsTrue() {
        LogAnalyzer analyzer = new LogAnalyzer();
        bool result = analyzer.IsValidLogFileName("whatever.slf");
        Assert.IsTrue(result, "filename should be valid");
    }
}

NUnit GUI でテストの dll をロードして実行しようとすると、次のエラーが発生します。

LogAnalyzerTests.LogAnalyzerTests.IsValidFileName_validFileLowerCased_ReturnsTrue:

System.BadImageFormatException : ファイルまたはアセンブリ 'LogAnalyzer、Version=1.0.0.0、Culture=neutral、PublicKeyToken=null' またはその依存関係の 1 つを読み込めませんでした。不正な形式のプログラムをロードしようとしました。

これは、NUnit をインストールした後に実行した手順です。

  1. クラスプロジェクトを作成する
  2. テストするプロジェクトへの参照を追加します
  3. NUnit への参照を追加
  4. NUnit GUI を開く
  5. デバッグ フォルダから NUnitClassLibrarry.dll を読み込みます
  6. 実行(これがエラーが発生した場所です)

私は何を間違っていますか?どうすれば修正できますか?

4

1 に答える 1

0

なぜこれが機能するのか完全には理解できません.NUnitがインストールされているフォルダーにはx86バージョンのプログラムがあり、何らかの理由でこれが機能します.

于 2013-02-13T12:51:08.097 に答える