我有一个简单的arquillian测试类,有2个测试用例。测试类有一个静态变量,在开头是null。第一个测试用例将为该变量设置一个值,但是当第二个测试开始时,该变量的值为null。我知道这不是正确的方法,因为一个测试取决于另一个,它只是一个例子。
另一个类似的情况,当我在@BeforeClass
方法中设置静态变量的值时。第一次测试执行时,变量将再次为null。只有当我使用@Before
方法才能正确设置值,但如果我有很多测试,并且变量的设置是时间密集的,那么这将是一个不好的选择。
我不太明白为什么会这样。如果测试只是作为JUnit测试运行,那么静态变量就可以正常工作。这有什么办法吗?
使用托管jboss容器运行测试。
答案 0 :(得分:3)
Junit
不允许在测试用例之间共享变量。在执行期间,每个测试用例都有自己的变量本地副本。
这种设计背后的基本原理很简单,测试用例不应相互依赖。这就是为什么它被称为单元测试,其中每个单元都应该独立测试。
但如果你真的需要这样做,那么你可以创建一个static
类变量来存储信息。