sách gpt4 ăn đã đi

c# - xUnit.net 理论,其中 MemberData 来自派生类

In lại 作者:太空狗 更新时间:2023-10-29 22:21:27 24 4
mua khóa gpt4 giày nike

使用 xUnit.net,Theory 是否有可能使其 MemberData 源自派生类?

public abstract class BaseTest
{
public abstract IEnumerable Data();

[Theory]
[MemberData(nameof(Data))]
public void TestData(string expected, string actual)
{
// assert goes here
}
}

public class ComplexTest : BaseTest
{
public override IEnumerable Data()
{
// data goes here
}
}

上面的代码会导致以下错误消息:

System.NotSupportedException : Specified method is not supported.

câu trả lời hay nhất

另一种方法(和 IMO 清洁器)是将您的测试场景放在它们自己的特定类中,并将每个场景集定义为单独的 MemberData 属性:

public class BaseTest
{
[Theory]
[MemberData(nameof(TestScenarios1.Data), MemberType = typeof(TestScenarios1)]
[MemberData(nameof(TestScenarios1.MoreData), MemberType = typeof(TestScenarios1)]
[MemberData(nameof(TestScenarios2.DifferentData), MemberType = typeof(TestScenarios2)]
public void TestData(string expected, string actual)
{
// assert goes here
}
}

public class TestScenarios1
{
public static IEnumerable Data()
{
// data goes here
}

public static IEnumerable MoreData()
{
// data goes here
}
}

public class TestScenarios2
{
public static IEnumerable DifferentData()
{
// data goes here
}
}

关于c# - xUnit.net 理论,其中 MemberData 来自派生类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44169127/

24 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress