2013-04-08 86 views

回答

2

每次运行单元测试时,都会独立调用每个测试用例。在每个测试用例运行之前,调用setUp方法,之后调用tearDown方法。

所以,如果你想分享测试中的道理,你应该添加

token = @"sample"; // or smth else 

您的设置方法。

+0

谢谢!那么,如果我想将我的一个测试的输出用作另一个测试的输出结果呢?有什么办法可以做到这一点? – neutrino 2013-04-08 14:54:35

+1

单元测试应该独立运行。如果不是,他们不再是单元测试。 – 2013-04-08 14:58:17

+0

我明白了...谢谢! – neutrino 2013-04-08 15:01:48

0

执行测试方法的顺序不能保证,所以可能是testBtestA之前运行,甚至在将来它们并行运行。

+0

我不认为并行运行测试是可能的,因为它会在共享资源(例如单例)上崩溃。并行运行测试只有在您测试的东西是同步时才有意义。 – Sulthan 2013-04-08 15:10:23

+0

是的,重点更多的是理论上的问题。一个更好的例子可能是,测试运行者理论上可以根据自上次运行以来代码发生了哪些变化,找出哪些测试不需要再次运行。 – 2013-04-08 15:13:56

1

据我所知,当前的实现按照字母顺序运行测试方法,所以你的例子应该运行没有问题。

通常情况下,如果我想要的东西,首先要测试的,我的名字test1_criticalFeaturetest2_dependentFeatures

+0

谢谢苏丹。这是正确的,但无论如何变量被摧毁。我认为为每个测试都创建了一个“SampleTests”的新实例。 – neutrino 2013-04-08 19:13:48

+0

@neutrino我不认为这是真的。我很确定我在一个测试课程中的测试之间共享了一些对象。这是在一个类中有几个测试方法的整个概念。 – Sulthan 2013-04-08 19:17:57

+0

然后我不知道发生了什么......你认为我的代码有什么不对吗? – neutrino 2013-04-08 19:22:56