"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > 복잡한 매개 변수를 XUnit의 [이론] 방법에 어떻게 전달할 수 있습니까?

복잡한 매개 변수를 XUnit의 [이론] 방법에 어떻게 전달할 수 있습니까?

2025-05-02에 게시되었습니다
검색:126

How Can I Pass Complex Parameters to XUnit's [Theory] Methods?

memberdata 및 classData 속성

xunit은 복잡한 매개 변수를 [이론] 방법으로 전달하기위한 몇 가지 옵션을 제공합니다. 한 가지 방법은 MemberData 속성을 사용하는 것입니다. 이 속성은 Xunit에게 ienumerable 을 반환하는 속성을 실행하도록 지시합니다. ienumerable의 각 객체 []는 [이론] 메소드에 대한 단일 호출의 매개 변수로 "포장되지 않은"것입니다.

다른 옵션은 classData 속성을 사용하는 것입니다. ClassData는 MemberData와 유사하게 작동하지만 다른 클래스 또는 네임 스페이스의 테스트간에 데이터 생성기를 공유 할 수 있습니다. 또한 실제 테스트 방법과 '데이터 생성기'를 분리합니다.

ClassData 예제

public class IndexOfData
{
    public static IEnumerable SplitCountData => 
        new List
        {
            new object[] { "hello world", 'w', 6 },
            new object[] { "goodnight moon", 'w', -1 }
        };
}

public class IndexOfData
{
    public static IEnumerable SplitCountData => 
        new List
        {
            new object[] { "hello world", 'w', 6 },
            new object[] { "goodnight moon", 'w', -1 }
        };
}

How Can I Pass Complex Parameters to XUnit's [Theory] Methods?
. { public static ienumerable splitCountData => 새 목록 { 새로운 개체 [] { "Hello World", 'W', 6}, 새로운 개체 [] { "굿나잇 달", 'w', -1} }; }

테스트 클래스에서 [이론] 속성을 적용하고 속성의 멤버 타입 속성을 사용하여 정적 멤버를 지정할 수 있습니다. public void indexof (문자열 입력, 숯 문자, int expect) {...} 이러한 속성을 활용하여 복잡한 매개 변수를 [이론] 메소드에 전달하여 다양한 시나리오를 효율적으로 테스트 할 수 있습니다.

.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3