Arquillian测试类变量失去价值

时间:2013-08-14 09:30:35

标签: java junit jboss-arquillian

我有一个简单的arquillian测试类,有2个测试用例。测试类有一个静态变量,在开头是null。第一个测试用例将为该变量设置一个值,但是当第二个测试开始时,该变量的值为null。我知道这不是正确的方法,因为一个测试取决于另一个,它只是一个例子。

另一个类似的情况,当我在@BeforeClass方法中设置静态变量的值时。第一次测试执行时,变量将再次为null。只有当我使用@Before方法才能正确设置值,但如果我有很多测试,并且变量的设置是时间密集的,那么这将是一个不好的选择。

我不太明白为什么会这样。如果测试只是作为JUnit测试运行,那么静态变量就可以正常工作。这有什么办法吗?

使用托管jboss容器运行测试。

1 个答案:

答案 0 :(得分:3)

Junit不允许在测试用例之间共享变量。在执行期间,每个测试用例都有自己的变量本地副本。

这种设计背后的基本原理很简单,测试用例不应相互依赖。这就是为什么它被称为单元测试,其中每个单元都应该独立测试。

但如果你真的需要这样做,那么你可以创建一个static类变量来存储信息。