gpt4 book ai didi

unit-testing - 如何参数化 TestFixtureSetUp (NUnit)

转载 作者:行者123 更新时间:2023-11-28 20:05:57 30 4
gpt4 key购买 nike

在我的测试中,下一个流程发生了:

  1. 我在所有测试运行之前执行一些操作(例如购买产品)
  2. 然后在每个测试中我检查一个断言

我使用 NUnit 框架来运行测试,所以我使用 [TestFixtureSetUp] 来标记一组在所有测试之前完成一次的操作。然后我使用 [Test] 或 [TestCase()] 来运行测试。

经常发生我需要检查相同的事情但执行不同流程的情况。所以我必须参数化 [TestFixtureSetUp]。我能以某种方式做到吗?

所以我想让我的一组操作在所有测试之前执行一次取决于参数。

如果可以使用不同的框架或不同的流程结构,请告诉我)

我的代码示例:

 [TestFixtureSetUp] //This will be done once before all tests
public void Buy_Regular_One_Draw_Ticket(WayToPay merchant)
{
//here I want to do some actions and use different merchants to pay.

//So how can I send different parameters to this method?

}

最佳答案

伙计们,下一个解决方案是:类的构造函数在 [TestFixtureSetUp] 之前运行,因此在 [TestFixtureSetUp] 中进行的所有操作现在都在类的构造函数中进行。

而且我们有能力向构造函数发送参数!为此,我们使用 [TestFixture()]。

整个代码如下:

[TestFixture(WaysToPay.Offline)]
[TestFixture(WaysToPay.Neteller)]
public class DepositTests
{
//Constructor takes parameters from TestFixture
public DepositTests(WaysToPay merchant)
{
//Do actions before tests considering your parameters
}

[Test]
public void Your_test_method()
{
//do your verification here
}
}

使用这种方法而不是使用 [TestFixtureSetUp] 可以使您的测试更加灵活。所以行为与 [TestFixtureSetUp] 可以获取参数相同

关于unit-testing - 如何参数化 TestFixtureSetUp (NUnit),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32712437/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com