xUnit テストプロジェクトでメソッドのテストをスキップするコードを紹介します。
xUnitテストプロジェクトのテストクラスでメソッドをスキップする場合には、Skip属性を記述します。
次の書式を利用します。
[テストの種類(Skip="標準出力の文字列"]
テストがFactやTheroryの場合の書式は次のようになります。
[Fact(Skip="標準出力の文字列"]
下記コードを記述します。
using System;
namespace xUnitMethodSkip
{
public class MyClass
{
public int proc1(int a, int b)
{
return a+b;
}
public int proc2(int a, int b)
{
return a - b;
}
public int proc3(int a, int b)
{
return a * b;
}
}
}
using System;
using Xunit;
using xUnitMethodSkip;
namespace xUnitMethodSkipTest
{
public class UnitTestMain
{
[Fact]
public void Test1()
{
MyClass mc = new MyClass();
Assert.Equal(3, mc.proc1(1,2));
}
[Fact]
public void Test2()
{
MyClass mc = new MyClass();
Assert.Equal(2, mc.proc2(4, 2));
}
[Fact]
public void Test3()
{
MyClass mc = new MyClass();
Assert.Equal(12, mc.proc3(3, 4));
}
}
}
Factを利用したメソッドのテストをするコードです。こちらの記事も参照して下さい。
テストを実行すると3つのテストメソッドがテストされ結果が表示されます。
諸事情により、Test1()
Test3()
メソッドをスキップしたい状況になりました。テストメソッドをスキップするにはコードを次のように編集し、Skip属性を記述します。
using System;
using Xunit;
using xUnitMethodSkip;
namespace xUnitMethodSkipTest
{
public class UnitTestMain
{
[Fact(Skip ="未完成のため、スキップ")]
public void Test1()
{
MyClass mc = new MyClass();
Assert.Equal(3, mc.proc1(1,2));
}
[Fact]
public void Test2()
{
MyClass mc = new MyClass();
Assert.Equal(2, mc.proc2(4, 2));
}
[Fact(Skip = "未完成のため、スキップ")]
public void Test3()
{
MyClass mc = new MyClass();
Assert.Equal(12, mc.proc3(3, 4));
}
}
}
テストを実行するとワーニングのアイコンが表示され、テストがスキップされます。
テストメソッドを選択して[テスト詳細の概要]を確認すると、Skip属性に記述したメッセージが[標準出力]の欄に表示されています。
他の属性と組み合わせる場合は、","で区切り記述します。
[Fact(DislpayName = "積算処理のテスト", Skip = "未完成のため、スキップ")]
public void Test3()
{
MyClass mc = new MyClass();
Assert.Equal(12, mc.proc3(3, 4));
}