[NUnit] 期待値と等しいかをテストする

スポンサーリンク

3前回は NUnit用のテストプロジェクトの作成方法について説明しました。
今回は、クラスに追加したメソッドが期待値を返してくるかどうかをテストしてみます。

C#の説明はこちら
VB.NETの説明はこちら


C#編
まずは、前回作成した CommonLibrary プロジェクトにある MyMath.cs に以下のメソッドを追加します。
足し算をするメソッドで、2つの引数の合計値を返します。

public class MyMath
{
    /// <summary>
    /// 2つの引数を加算した結果を返す
    /// </summary>
    /// <param name="x">値1</param>
    /// <param name="y">値2</param>
    /// <returns>加算結果</returns>
    public int Add(int x, int y)
    {
        return x + y;
    }
}

次に、Addメソッドのテストコードを作成します。
NUnitTestプロジェクトにある、MyTest.cs を開いて以下を記述します。

[TestFixture]
public class MyTest
{
    [Test]
    public void 足し算のテスト()
    {
        MyMath myMath = new MyMath();
        int result = 0;

        // 3 + 2 の合計値を result に代入
        result = myMath.Add(3, 2);

        // Assert.AreEqualメソッドを使ってテスト
        // 期待する結果 5 と実際の戻り値 result を比較する
        Assert.AreEqual(5, result);
    }
}

NUnitでは、テストを実施するのに Assertクラスを使用します。
今回は、期待値と実際の結果が等しいかどうかをテストする AreEqualメソッドを使用します。
第1引数には 期待値(この値になるはず、という値)を、第2引数には比較する値(ここでは、 Addメソッドの戻り値)を指定しています。
Addメソッドに3と2を渡して、resultには5が代入されることをテストします。

上記の入力が完了したら、Visual Studioの実行ボタン(または[F5])を押します。
NUnitが起動して、以下のような画面になります。

NUnitの実行

NUnit画面の左側には、テスト対象のメソッド一覧が表示されます。
今回は「足し算のテスト」というメソッドが表示されています。
テスト実施前は、グレーで表示されています。
テストが成功すれば緑、テストが失敗すれば赤になります。

[Run]ボタンを押して、実行してみましょう。
テストに成功すると グリーンになるはずです。

テストの成功

テストコードもデバッグしたいという場合は NUnitの nunit.exe.configファイル内の <configuration>~</configuration>内に以下を追加します。

<startup>
    <requiredRuntime version="4.0.30319" />
</startup>

追記後のファイル内容は、以下の通りです。
(私の環境の場合は C:\Program Files (x86)\NUnit 2.6.3\bin\nunit.exe.config に対して追記しました)

<?xml version="1.0" encoding="utf-8"?>	
<configuration>	
	<!--
   The GUI only runs under .NET 2.0 or higher. The	
   useLegacyV2RuntimeActivationPolicy setting only	
   applies under .NET 4.0 and permits use of mixed 	
   mode assemblies, which would otherwise not load 	
   correctly.	
  -->	
	<startup useLegacyV2RuntimeActivationPolicy="true">
	
	</startup>
	<runtime>
		<!-- Ensure that test exceptions don't crash NUnit -->
		<legacyUnhandledExceptionPolicy enabled="1"/>
		<!-- Run partial trust V2 assemblies in full trust under .NET 4.0 -->
		<loadFromRemoteSources enabled="true"/>
		<!-- Look for addins in the addins directory for now -->
		<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
		
		</assemblyBinding>
	</runtime>
	<startup>
	    <requiredRuntime version="4.0.30319" />
	</startup>
</configuration>

追記完了後、Visual Studioで[F5]を押し、実行をすると NUnitが起動するので [Run]ボタンをクリックします。
ブレークポイントを設定しておくと、NUnitの[Run]ボタンクリック後、ブレークポイント行で止まるようになります。ことを確認できます。
また、テストに失敗した場合は、以下のよう失敗した箇所でブレークします。

NUnit用テストコードのデバッグ


VB.NET編
まずは、前回作成した CommonLibrary プロジェクトにある MyMath.vb に以下のメソッドを追加します。
足し算をするメソッドで、2つの引数の合計値を返します。

Public Class MyMath

    ''' <summary>
    ''' 2つの引数を加算した結果を返す
    ''' </summary>
    ''' <param name="x">値1</param>
    ''' <param name="y">値2</param>
    ''' <returns>加算結果</returns>
    ''' <remarks></remarks>
    Public Function Add(x As Integer, y As Integer)
        Return x + y
    End Function

End Class

次に、Addメソッドのテストコードを作成します。
NUnitTestプロジェクトにある、MyTest.vb を開いて以下を記述します。

<TestFixture>
Public Class MyTest

    <Test>
    Public Sub 足し算のテスト()
        Dim myMath As New MyMath
        Dim result As Integer = 0

        ' 3 + 2 の合計値を result に代入
        result = myMath.Add(3, 2)

        ' Assert.AreEqualメソッドを使ってテスト
        ' 期待する結果 5 と実際の戻り値 result を比較する
        Assert.AreEqual(5, result)
    End Sub

End Class

NUnitでは、テストを実施するのに Assertクラスを使用します。
今回は、期待値と実際の結果が等しいかどうかをテストする AreEqualメソッドを使用します。
第1引数には 期待値(この値になるはず、という値)を、第2引数には比較する値(ここでは、 Addメソッドの戻り値)を指定しています。
Addメソッドに3と2を渡して、resultには5が代入されることをテストします。

上記の入力が完了したら、Visual Studioの実行ボタン(または[F5])を押します。
NUnitが起動して、以下のような画面になります。

NUnitの実行

NUnit画面の左側には、テスト対象のメソッド一覧が表示されます。
今回は「足し算のテスト」というメソッドが表示されています。
テスト実施前は、グレーで表示されています。
テストが成功すれば緑、テストが失敗すれば赤になります。

[Run]ボタンを押して、実行してみましょう。
テストに成功すると グリーンになるはずです。

テストの成功

テストコードもデバッグしたいという場合は NUnitの nunit.exe.configファイル内の <configuration>~</configuration>内に以下を追加します。

<startup>
    <requiredRuntime version="4.0.30319" />
</startup>

追記後のファイル内容は、以下の通りです。
(私の環境の場合は C:\Program Files (x86)\NUnit 2.6.3\bin\nunit.exe.config に対して追記しました)

<?xml version="1.0" encoding="utf-8"?>	
<configuration>	
	<!--
   The GUI only runs under .NET 2.0 or higher. The	
   useLegacyV2RuntimeActivationPolicy setting only	
   applies under .NET 4.0 and permits use of mixed 	
   mode assemblies, which would otherwise not load 	
   correctly.	
  -->	
	<startup useLegacyV2RuntimeActivationPolicy="true">
	
	</startup>
	<runtime>
		<!-- Ensure that test exceptions don't crash NUnit -->
		<legacyUnhandledExceptionPolicy enabled="1"/>
		<!-- Run partial trust V2 assemblies in full trust under .NET 4.0 -->
		<loadFromRemoteSources enabled="true"/>
		<!-- Look for addins in the addins directory for now -->
		<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
		
		</assemblyBinding>
	</runtime>
	<startup>
	    <requiredRuntime version="4.0.30319" />
	</startup>
</configuration>

追記完了後、Visual Studioで[F5]を押し、実行をすると NUnitが起動するので [Run]ボタンをクリックします。
ブレークポイントを設定しておくと、NUnitの[Run]ボタンクリック後、ブレークポイント行で止まるようになります。ことを確認できます。
また、テストに失敗した場合は、以下のよう失敗した箇所でブレークします。

NUnit用テストコードのデバッグ

Please follow and like us:

コメント

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