.net 在任何测试之前调用的方法(xUnit)

mlmc2os5  于 2023-05-19  发布在  .NET
关注(0)|答案(3)|浏览(203)

有没有什么方法可以创建一个在任何测试之前自动调用的方法?

[Fact]
public void Test1() { }

[Fact]
public void Test2() { }

private void Prepare()
{
    // Prepare test environment
}

我需要在Test1Test2之前调用Prepare。应该是这样的:
1.调用Prepare()
1.调用Test1
1.调用Prepare()
1.调用Test2
我知道我可以用我自己的喜欢来称呼它

[Fact]
public void Test1()
{
    Prepare();
}

但有没有办法自动完成呢

wwtsj6pe

wwtsj6pe1#

将对Prepare方法调用包含在测试类的构造函数中。
documentation比较了其他测试框架,例如[SetUp]属性等。
我们认为使用[SetUp]通常是不好的。但是,您可以将无参数构造函数实现为直接替换。

cgvd09ve

cgvd09ve2#

NUnit 中,有一个SetUp attribute,你可以使用它作为一个方法,它应该在任何测试之前运行。
xUnit 中,似乎需要您自己创建(see here

km0tfn4u

km0tfn4u3#

你可以在类的构造函数中调用 Prepare 方法。因此,它将在测试方法之前自动调用。

public class ClassTest
{
    public ClassTest()
    {
        Prepare();
    }
    public void Prepare()
    {
        // your logic
    }

    [Fact]
    public void Test1()
    {
        //Arrange
       
       //Act

       //Assert
    }
}

相关问题