什么是NUnit框架生命周期执行顺序?

时间:2017-08-20 10:35:28

标签: asp.net-mvc unit-testing testing nunit

最近,我在ASP.NET MVC项目中添加了一个基于NUnit Framework(版本3.7.1.0)的测试项目。我知道NUnit中有一些属性以及其他框架,我们可以将它们添加到我们的类和方法中,以便编写更好的测试用例。

以下是NUnit文档引入的属性:

  • 设置
  • TearDown中
  • TestFixtureSetUp
  • TestFixtureTearDown

我想知道幕后执行顺序和性能考虑因素。

1 个答案:

答案 0 :(得分:2)

  

我想知道执行顺序

TestFixture相关的Setup / TearDown方法仅对TestFixture执行一次。与Test相关的设置/ TearDown方法将针对每个测试执行。这是中间循环的顺序:

TestFixtureSetUp    // executed once before first test SetUp
   SetUp            // excuted before *each* test
   TearDown         // executed after *each* test
TestFixtureTearDown // executed once after last test TearDown

我使用SetUp方法移动那些在测试的编排部分重复的代码。通常,您通过创建它并提供所需的模拟依赖项来在SetUp方法中初始化SUT。

TestFixtureSetUp更具全球性 - 它为灯具中的所有测试做好准备。通常,我用它来初始化一些环境 - 例如使用一些初始数据创建数据库和/或设置表。 TestFixtureTearDown用于删除该数据库。当然,环境初始化与单元测试无关 - 它适用于验收测试。

  实施该

的幕后性能考虑因素

与任何其他方法调用相同。这取决于你在设置或拆解方法中的用途。