문제:
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" } } }, };
Data 속성은 열거 가능한 객체 배열을 생성합니다. 여기서 각 배열은 WriteReports에 대한 매개 변수 집합에 해당합니다. 방법입니다.
위 내용은 사용자 정의 클래스 목록과 같은 복잡한 매개변수를 XUnit 이론에 어떻게 전달할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!