2

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

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

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

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

4

1 回答 1

3

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

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

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

于 2013-08-14T09:32:14.450 回答