正如一本相当老的书所写XUnit Patterns NUnit 2.0没有为每个测试创建新的测试装置,并且因为如果测试正在操纵某些状态的固定装置,它会变得共享并可能导致各种不良副作用。NUnit现在是否为每个包含的测试方法创建测试夹具类的新实例?
这仍然是一样的吗?我试图在官方网站上找到它,但失败了,并没有使用NUnit一段时间。
正如一本相当老的书所写XUnit Patterns NUnit 2.0没有为每个测试创建新的测试装置,并且因为如果测试正在操纵某些状态的固定装置,它会变得共享并可能导致各种不良副作用。NUnit现在是否为每个包含的测试方法创建测试夹具类的新实例?
这仍然是一样的吗?我试图在官方网站上找到它,但失败了,并没有使用NUnit一段时间。
夹具为该夹具中的所有测试创建一次。
对于给定的fixture类,FixtureSetup方法对夹具中的所有测试运行一次,并且Setup方法对每个测试运行一次。因此,任何需要重置的状态都应该使用设置方法(或每次测试结束时运行的TearDown)完成。
我发现这是一个影响到我的问题,并且还发现此链接这为这个问题提供了一些历史; https://blogs.msdn.microsoft.com/jamesnewkirk/2004/12/04/why-variables-in-nunit-testfixture-classes-should-be-static
我认为,我们当时写到NUnit的V2.0是不是每载测试方法创建测试夹具类的新实例,这是取得了最大的螺杆式窗口之一。
尚未测试这在V3,看看它改变
这是相同的(单一夹具实例重新用于所有的测试)截至NUnit v3.9。 –
注意的NUnit新版本替换为“FixtureSetup”与“OneTimeSetUp” – Pedro