ASP.NET Boilerplate的Xunit测试

时间:2018-04-12 16:26:45

标签: xunit asp.net-boilerplate

对于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_TestUpdateCoupon_Test,当我运行所有测试时,我想执行CreateCoupon_Test,然后UpdateCoupon_Test。但是,目前,它的顺序是随机的,我在UpdateCoupon_Test之前运行了CreateCoupon_Test,然后我的测试失败了,因为我更新了尚未创建的记录。

0 个答案:

没有答案