[NUnit] ファイル内容が一致するかテストする

スポンサーリンク

NUnitではファイル内容が一致するかをテストするために、以下のメソッドが用意されています。

  • FileAsert.AreEqual ファイル内容が一致している場合テスト成功
  • FileAsert.AreNotEqual ファイル内容が不一致の場合テスト成功

AreEqual, AreNotEqualメソッドは、複数のオーバーロードを持っています。
よく使用されると思われるものは以下の通りです。

オーバーロード 説明
FileAssert.AreEqual(期待する内容を持つファイルのパス文字列、テスト対象のファイルパス文字列) 「期待する内容を持つファイルのパス文字列」が指すファイルの内容と、「テスト対象のファイルパス文字列」が指すファイルの内容が一致する場合、テスト成功
FileAssert.AreEqual(期待する内容を持つファイルのFileInfoクラスのインスタンス、テスト対象のFileInfoクラスのインスタンス) 「期待する内容を持つファイルのFileInfoクラスのインスタンス」のファイルの内容と、「テスト対象のFileInfoクラスのインスタンス」が指すファイルの内容が一致する場合、テスト成功
FileAssert.AreNotEqual(期待する内容を持つファイルのパス文字列、テスト対象のファイルパス文字列) 「期待する内容を持つファイルのパス文字列」が指すファイルの内容と、「テスト対象のファイルパス文字列」が指すファイルの内容が不一致の場合、テスト成功
FileAssert.AreNotEqual(期待する内容を持つファイルのFileInfoクラスのインスタンス、テスト対象のFileInfoクラスのインスタンス) 「期待する内容を持つファイルのFileInfoクラスのインスタンス」のファイルの内容と、「テスト対象のFileInfoクラスのインスタンス」が指すファイルの内容が不一致の場合、テスト成功

以下に使用例を示します。

VB.NETの例

<Test>
Public Sub パス文字列を使用したファイル内容の一致テスト()

    Dim path1 As String = "C:\Work2\Test1.txt"
    Dim path2 As String = "C:\Work2\Test2.txt"

    FileAssert.AreEqual(path1, path2)
End Sub

<Test>
Public Sub パス文字列を使用したファイル内容の不一致テスト()

    Dim path1 As String = "C:\Work2\Test1.txt"
    Dim path2 As String = "C:\Work2\Test3.txt"

    FileAssert.AreNotEqual(path1, path2)
End Sub

<Test>
Public Sub FileInfoクラスを使用したファイル内容の一致テスト()

    Dim info1 As FileInfo = New FileInfo("C:\Work2\Test1.txt")
    Dim info2 As FileInfo = New FileInfo("C:\Work2\Test2.txt")

    FileAssert.AreEqual(info1, info2)
End Sub

<Test>
Public Sub FileInfoクラスを使用したファイル内容の不一致テスト()

    Dim info1 As FileInfo = New FileInfo("C:\Work2\Test1.txt")
    Dim info2 As FileInfo = New FileInfo("C:\Work2\Test3.txt")

    FileAssert.AreNotEqual(info1, info2)
End Sub

C#の例

[Test]
public void パス文字列を使用したファイル内容の一致テスト()
{
    string path1 = @"C:\Work2\Test1.txt";
    string path2 = @"C:\Work2\Test2.txt";

    FileAssert.AreEqual(path1, path2);
}

[Test]
public void パス文字列を使用したファイル内容の不一致テスト()
{
    string path1 = @"C:\Work2\Test1.txt";
    string path2 = @"C:\Work2\Test3.txt";

    FileAssert.AreNotEqual(path1, path2);
}

[Test]
public void FileInfoクラスを使用したファイル内容の一致テスト()
{
    FileInfo info1 = new FileInfo(@"C:\Work2\Test1.txt");
    FileInfo info2 = new FileInfo(@"C:\Work2\Test2.txt");

    FileAssert.AreEqual(info1, info2);
}

[Test]
public void FileInfoクラスを使用したファイル内容の不一致テスト()
{
    FileInfo info1 = new FileInfo(@"C:\Work2\Test1.txt");
    FileInfo info2 = new FileInfo(@"C:\Work2\Test3.txt");

    FileAssert.AreNotEqual(info1, info2);
}

テストに使用したファイルは以下の通りです。

Test1.txt

NUnit Test

 

Test2.txt

NUnit Test

 

Test3.txt

MSTest
Please follow and like us:

コメント

タイトルとURLをコピーしました