gpt4 book ai didi

unit-testing - NUnit中的执行顺序是什么?

转载 作者:行者123 更新时间:2023-12-03 23:18:30 24 4
gpt4 key购买 nike

我一直在做一些关于测试驱动开发的研究,发现它很酷。

我遇到的一件事是,当您编写测试时,设置和测试方法([Setup] 和 [Test])的执行顺序是一致的。

在测试时是否还有其他可以使用的,如果是,它们的执行顺序是什么,例如处置或其他什么?我看到了测试夹具设置,但对那个不太熟悉。

例子:

当我运行测试时,它首先执行 [Setup],然后运行 ​​[Test],当它进入下一个测试时,它再次运行 [Setup],然后进入 [Test]。

如果有帮助,我正在使用 NUnit。

这是我设置的截断示例:

using NUnit.Framework;

namespace TestingProject
{
[TestFixture]
public class CustomerService_Tests
{
public string MyAccount = string.Empty;

[SetUp]
public void Setup()
{
MyAccount = "This Account";
}

[Test]
public void Validate_That_Account_Is_Not_Empty()
{
Assert.That(!string.IsNullOrEmpty(MyAccount));
}

[Test]
public void Validate_That_Account_Is_Empty()
{
Assert.That(string.IsNullOrEmpty(MyAccount));
}
}
}

所以,当我运行测试时,它会进行设置,然后是第一次测试,然后是设置,然后是第二次测试。

我的问题是在测试时我可以使用哪些其他类型,例如 [Setup] 和 [Test],以及它们的执行顺序是什么。

最佳答案

使用 NUnit(不确定其他)你有以下执行顺序:

测试夹具设置

设置

测试

拆除

设置

测试

拆除

测试夹具拆卸

每次运行测试时,它总是按该顺序执行。

如果你看一下下面的代码,你可以看到我所说的内容的精确复制品。您甚至可以复制并粘贴此代码,它应该可以工作(使用 NUnit,不确定它是否适用于其他人)。

如果您在 Debug模式下运行它,并在每个方法上放置一个断点,您就可以在调试时看到执行顺序。

using NUnit.Framework;

namespace Tester
{
[TestFixture]
public class Tester
{
public string RandomVariable = string.Empty;

[TestFixtureSetUp]
public void TestFixtureSetup()
{
//This gets executed first before anything else
RandomVariable = "This was set in TestFixtureSetup";
}

[SetUp]
public void Setup()
{
//This gets called before every test
RandomVariable = "This was set in Setup";
}

[Test]
public void MyTest1()
{
//This is your test...
RandomVariable = "This was set in Test 1";
}

[Test]
public void MyTest2()
{
//This is your test...
RandomVariable = "This was set in Test 2";
}

[TearDown]
public void TestTearDown()
{
//This gets executed after your test gets executed.
//Used to dispose of objects and such if needed
RandomVariable = "This was set in TearDown";
}

[TestFixtureTearDown]
public void TestFixtureTearDown()
{
//Executes Last after all tests have run.
RandomVariable = "This was set in TestFixtureTearDown";

}

}
}

关于unit-testing - NUnit中的执行顺序是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/921332/

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