問題:
XUnit では、InlineData 属性を使用してパラメーター化されたテストを作成できます。ただし、カスタム クラスのリストなど、複雑なパラメーターを扱う場合には問題が発生します。
回答:
XUnit は、MemberData を含むさまざまなデータ属性を提供します。 IEnumerable
MemberData 例:
public class MyClass { public string Name { get; set; } } public static void WriteReportsToMemoryStream( IEnumerable<MyClass> listReport, MemoryStream ms, StreamWriter writer) { ... } [Theory, MemberData(nameof(Data))] public void WriteReports(IEnumerable<MyClass> listReport) { using (var ms = new MemoryStream()) { using (var writer = new StreamWriter(ms)) { WriteReportsToMemoryStream(listReport, ms, writer); // ... } } } public static IEnumerable<object[]> Data => new[] { new object[] { new[] { new MyClass { Name = "Item1" } } }, new object[] { new[] { new MyClass { Name = "Item2" } } }, };
以上がカスタム クラスのリストのような複雑なパラメーターを XUnit 理論に渡すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。