0

对于ASP.NET Boilerplate,我正在尝试为该项目实施 Xunit 测试。有没有什么方法可以为测试方法提供参数并配置测试方法的流程顺序。
在正常的测试项目中,我可以使用[InlineData("Test", 3)]为测试方法提供值public async void AllInOne_Test(string userName, int count),但是对于ASP.NET Boilerplate,它没有将值传递给测试方法。
我也想在TestB之后处理TestB,我怎么能做到这一点?

Update1:
​​对于InlineData问题,我可以继承TheoryAttribute如下:

    public sealed class MultiTenantTheoryAttribute : TheoryAttribute
{
    public MultiTenantTheoryAttribute()
    {
        if (!CloudConsts.MultiTenancyEnabled)
        {
            Skip = "MultiTenancy is disabled.";
        }
    }
}

然后,像下面这样使用它:

        [MultiTenantTheory]
    [InlineData("Test_CreateCoupon")]
    public async Task CreateCoupon_Test(string title)
    {
        //....
    }

但是,我仍然对测试方法处理顺序有疑问。

        [MultiTenantTheory]
    [InlineData("Test_CreateCoupon")]
    public async Task CreateCoupon_Test(string title)
    {
        //...
    }

    [MultiTenantTheory]
    [InlineData("Test_CreateCoupon", "Test_UpdateCoupon")]
    public async Task UpdateCoupon_Test(string oldTitle, string updateTitle)
    {
       //。。。
    }

在我的测试中,我有CreateCoupon_Testand UpdateCoupon_Test,我想 exec CreateCoupon_Test,然后UpdateCoupon_Test当我运行所有测试时。但是,目前,它的顺序是随机的,我UpdateCoupon_Test之前运行过CreateCoupon_Test,然后我的测试失败了,因为我更新了尚未创建的记录。

4

0 回答 0