AutoFixtureandXUnit2-CombiningTheoryDataandAutoData
创始人
2024-11-12 13:30:29
0

在使用XUnit2进行测试时,可以同时使用AutoFixture和TheoryData来增强测试数据的泛化能力。其中TheoryData负责提供理论上的输入数据,而AutoFixture则可以根据输入类型自动生成随机数据,进一步增加数据泛化能力。

以下是示例代码:

public class Customer
{
    public string Name { get; set; }
    public int Age { get; set; }
}

public class CustomerService
{
    public bool IsAdult(Customer customer)
    {
        return customer.Age >= 18;
    }
}

public class CustomerTests
{
    [Theory, AutoData]
    public void IsAdult_Should_ReturnTrue_ForAdultCustomers(CustomerService service, Customer customer)
    {
        customer.Age = 18;
        var result = service.IsAdult(customer);
        Assert.True(result);
    }

    [Theory, AutoData]
    public void IsAdult_Should_ReturnFalse_ForChildCustomers(CustomerService service, Customer customer)
    {
        customer.Age = 16;
        var result = service.IsAdult(customer);
        Assert.False(result);
    }

    [Theory]
    [MemberData(nameof(CustomerData.GetData), MemberType = typeof(CustomerData))]
    public void IsAdult_Should_ReturnTrue_ForAdultCustomers_UsingCustomData(CustomerService service, Customer customer)
    {
        var result = service.IsAdult(customer);
        Assert.True(result);
    }
}

public class CustomerData
{
    public static IEnumerable GetData()
    {
        yield return new object[] { new CustomerService(), new Customer { Age = 18 } };
        yield return new object[] { new CustomerService(), new Customer { Age = 21 } };
    }
}

在示例中可以看到三个测试方法,第一个和第二个分别使用AutoData和TheoryData提供测试数据,分别测试了成年人和未成年人的判断。第三个测试方法使用自定义的数据源。

通过以上方法,可以大大提高测试覆盖率和测试的泛化能力。

相关内容

热门资讯

透视方案!hh poker辅助... 透视方案!hh poker辅助器先试用,xpoker透视辅助(透视)总是有挂(哔哩哔哩)所有人都在同...
透视步骤!aapoker怎么设... 透视步骤!aapoker怎么设置抽水,wepoker作必弊辅助(透视)好像真的有挂(哔哩哔哩)1、全...
透视秘籍!wepoker俱乐部... 透视秘籍!wepoker俱乐部辅助,wepokerplus脚本(透视)本来存在有挂(哔哩哔哩)1、用...
透视指南书!wepoker俱乐... 透视指南书!wepoker俱乐部辅助器,聚星ai辅助工具下载(透视)切实是有挂(哔哩哔哩)1、下载好...
透视秘籍!aapoker透视脚... 透视秘籍!aapoker透视脚本,wpk辅助器是真的吗(透视)原来是有挂(哔哩哔哩)1、wpk辅助器...
透视练习!佛手在线是不是有挂,... 透视练习!佛手在线是不是有挂,hhpoker德州真的假的(透视)确实真的有挂(哔哩哔哩)1、每一步都...
透视手册!uupoker透视,... 透视手册!uupoker透视,werplan脚本(透视)真是真的有挂(哔哩哔哩)1、werplan脚...
透视烘培!德普之星辅助器怎么用... 透视烘培!德普之星辅助器怎么用,微扑克微乐辅助(透视)其实存在有挂(哔哩哔哩)1、德普之星辅助器怎么...
透视窍门!hhpoker哪个俱... 透视窍门!hhpoker哪个俱乐部靠谱,hhpoker的辅助是真的吗(透视)切实是真的挂(哔哩哔哩)...
透视手筋!购买wepoker模... 透视手筋!购买wepoker模拟器,wepoker黑侠辅助器正版下载(透视)原来是有挂(哔哩哔哩)所...