有没有一种方法可以在xunit测试类中的每个测试之前异步运行设置方法?

时间:2020-04-29 20:41:00

标签: c# unit-testing asynchronous xunit

我有一组测试,每个测试之前都需要进行一些设置。该设置要求我异步运行它,我特别不想将异步代码放在构造函数中运行,xunit

建议这样做
public class Tests
{
    private async Task SetupForEachTestAsync()
    {
        // await setup
    }

    public Tests()
    {
        SetupForEachTestAsync.GetAwaiter().GetResult();
    }

    [Fact]
    public void Test1()
    {
        // My test
    }

    [Fact]
    public void Test2()
    {
        // My test
    }
}

关于如何改善这一点的任何建议?

1 个答案:

答案 0 :(得分:2)

实现 xUnit 的 IAsyncLifetime 接口。它定义了 InitializeAsyncDisposeAsync,它们将分别在构造之后和处置之前立即调用。