C#テスト環境

date
2019-12-14
tag: Csharp

C#テスト環境

  • Xunit

    • ユニットテスト用フレームワーク
  • FluentAssertions

    • ユニットテスト用拡張メソッド
  • Moq

    • mocking

      インタフェースの処理が呼ばれた時の引数と戻り値を指定できる。

      指定した引数がインタフェース

  • Coverlet.collector

    • カバレッジ計算・出力

Xunit 使い方

Fact 属性でテスト対象にする。

Fact 属性に引数 DisplayName を渡すとテストエクスプローラに表示される名称が変わる。

渡さない場合はメソッド名となる。

例[Fact(DisplayName = "aaaa")]

Xunit 公式

Xunit で Console 出力を表示

Console.SetOut を使い ITestOutputHelper の WriteLine を実行する。

var converter = new Converter(output);
Console.SetOut(converter);
private class Converter : TextWriter
{
    private readonly ITestOutputHelper _output;

    public Converter(ITestOutputHelper output)
    {
        _output = output;
    }

    public override Encoding Encoding
    {
        get { return Encoding.UTF8; }
    }

    public override void WriteLine(string message)
    {
        _output.WriteLine(message);
    }

    public override void WriteLine(string format, params object[] args)
    {
        _output.WriteLine(format, args);
    }
}

Moq の使い方

var mock = new Mock<インターフェイス>();
mock.Setup(x => x.対象メソッド())
.Returns(返却値);

Moq Quickstart