NUnitでは、TestCase属性を使用すると、1つのテストメソッドで複数のテストを実施することが可能になります。
TestCase属性を使用する場合は、Test属性は省略することができます。
TestCase属性の構文は以下の通りです。
VB.NETでの構文
<TestCase(引数1に渡す値, 引数2に渡す値, ... 引数nに渡す値)>
C#での構文
[TestCase(引数1に渡す値, 引数2に渡す値, ... 引数nに渡す値)]
TestCase属性は、複数記述することができます(要するにテストケースの数だけ記述できる)。
また、TestCase属性に記載する値は、実際のテストメソッドの引数の数と一致している必要があります。
実例は以下の通りです。
この例は、「期待値と等しいかをテストする」で取り上げた、足し算をするテストに TestCase属性を付けたものです。
VB.NETの例
<TestCase(5, 2, 3)> <TestCase(-5, -2, -3)> <TestCase(0, -3, 3)> Public Sub 足し算のテスト(期待値 As Integer, 値1 As Integer, 値2 As Integer) Dim myMath As New MyMath Dim 結果 As Integer = 0 結果 = myMath.Add(値1, 値2) Assert.AreEqual(期待値, 結果) End Sub
C#の例
[TestCase(5, 2, 3)] [TestCase(-5, -2, -3)] [TestCase(0, -3, 3)] public void 足し算のテスト(int 期待値, int 値1, int 値2) { MyMath myMath = new MyMath(); int 結果 = 0; 結果 = myMath.Add(値1, 値2); Assert.AreEqual(期待値, 結果); }
実際に NUnitを起動すると、以下のようになります。
テストメソッドは1つしか実装していませんが、テストケースを3つ記述しているので、「足し算のテスト」には3つのテスト項目がぶら下がります。
(TestCaseに記述した値が、それぞれの「足し算のテスト」メソッドの引数として使用されることが示されています)
[Run]ボタンを押すと、それぞれのテストケースについてテストが実施されます。
Please follow and like us:
コメント