豚吐露@wiki

howto

最終更新:

ohden

- view
管理者のみ編集可

xUnitの使い方

Windows10(64bit) 20H2(build 19042.2364)
Visual Studio Professional 2019 (Version 16.11.18)

xunit 2.4.2
xunit.runner.visualstudio 2.4.5
ChainingAssertion-xUnit.Bin 1.8.1
MoqExpression 2.0.0

公式


Annotation

  • [Fact]
TestCaseを示す。[Theory]と排他。
[Fact(DispalyName = "表示名", Skip = "skip reason")]
て感じに、DisplayNameで表示名を、SkipでTestの実行をskipさせることができる。
DisplayNameを設定しないと関数名が表示される。

  • [Theory]
InlineDataやCsvDataとセットで利用する。[Fact]と排他。
1つのTestMethodに対し、TestMethodの入力引数だけ変えたい場合は[Fact]では無く[Theory]を使う。
入力dataを受け付ける必要があるため、引数があったら"Theory"。無かったら"Fact"という認識で良いみたい。
[Theory(DispalyName = "表示名", Skip = "skip reason")]
Factと同様にDisplayNameとSkipを備える。

  • [InlineData]
TestMethodに引数を定義し、その引数の数、型に合ったparameterを指定することでTestMethodに値を渡せる。
[Theory]
[InlineData("hoge", 111)]
public void UnitTestSamle(string str, int num)
{
  // test process.
}

  • [CsvData]
csv fileを左から引数指定数分その型として解釈してTestMethodに引き渡す。
[Theory]
[CsvData("../../test.csv")]
public void UnitTestSamle(int num1, int num2)
{
  // Test Process.
}

  • [AttributeUsage]
任意の属性を定義できる。

  • [assembly]
InternalsVisibleToでTestProjectのNameSpaceを与えると、そのNameSpaceのTestProjectからInternal Classへのaccessが可能となる。
[assembly: InternalsVisibleTo("TestProject.NameSpace")]
[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")]
namespace TestTargetNamespace
{
  // test対象のclass、methodなど
}

"DynamicProxyGenAssembly2"は、Protectedなmethodに対してMoqを適用したいときに必要だった。詳しくはMoqのpage参照。

Assert

xUnit
  • Assert

ChainingAssertion
  • Is

  • IsNot

  • IsFalse

  • IsNull

  • IsNotNull

  • IsInstanceOf<T>

  • IsNotInstanceOf<T>

  • IsSameReferenceAs<T>

  • IsNotSameReferenceAs<T>

  • IsStructuralEqual<T>

  • IsNotStructuralEqual<T>


更新日: 2022年12月28日 (水) 12時59分14秒

名前:
コメント:

すべてのコメントを見る
記事メニュー
ウィキ募集バナー