この項は公式ドキュメント「Capturing Output」をベースとしています。
xUnit.netではテスト実行にデバッグ支援などのために利用できる出力のキャプチャー機構が用意されています。xUnit.netでは2つの仕組みが用意されています。
- Unitテストでの出力のキャプチャー
- xUnit.net機能拡張クラスでの主力のキャプチャー
ここでは前者のみ扱います。後者は公式ドキュメントを参照してください。
それではCapturingOutputソリューションを開き、UnitTest1.csクラスに次のように実装しましょう。
using Xunit;
using Xunit.Abstractions;
namespace CapturingOutput.Tests
{
public class UnitTest1
{
private readonly ITestOutputHelper _output;
public UnitTest1(ITestOutputHelper output)
{
_output = output;
_output.WriteLine("This is output from {0}", "Constructor");
}
[Fact]
public void Test1()
{
_output.WriteLine("This is output from {0}", "Test1");
}
}
}
ITestOutputHelperをコンストラクターでインジェクションしてもらい利用します。ITestOutputHelperはConsoleクラスと同様の出力フォーマットをサポートしています。