最近,我在ASP.NET MVC项目中添加了一个基于NUnit Framework(版本3.7.1.0)的测试项目。我知道NUnit中有一些属性以及其他框架,我们可以将它们添加到我们的类和方法中,以便编写更好的测试用例。
以下是NUnit文档引入的属性:
我想知道幕后执行顺序和性能考虑因素。
答案 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
用于删除该数据库。当然,环境初始化与单元测试无关 - 它适用于验收测试。
实施该的幕后性能考虑因素
与任何其他方法调用相同。这取决于你在设置或拆解方法中的用途。