0

我为 JUnit 创建了 2 个类 A、B,每个类都有自己的 ContextLoaders 用于加载应用程序上下文。现在,当我独立运行这些类中的每一个时,JUnit 测试运行良好。

但是,当我在这两个类上进行 maven 构建或运行 JUnit 时,第一个运行的类 A 运行得非常好,但第二个会引发异常(无法自动装配字段......预期一个找不到...... )。这是我想要做的: -

//带上下文加载器的A类A_ContextLoader

@runwith(springjunit4classrunner.class)
@ContextConfiguration(loader = A_ContextLoader.class)
public class A {
     @Test
     public void testMethod1() {
       ...
     }
}

//带有上下文加载器的B类B_ContextLoader

@runwith(springjunit4classrunner.class)
@ContextConfiguration(loader = B_ContextLoader.class)
public class B {
     @Test
     public void testMethod2() {
        ...
     }
}

据我了解,当第二类开始执行时,它使用现有上下文而不是初始化新上下文。在我的情况下,我不可能将两个上下文加载器合并到一个类中。

那么有什么方法可以在 A 类执行结束时“卸载”应用程序上下文。或者在 B 开始执行时如何要求 JUnit 重新初始化上下文?还是我错过了什么?

4

1 回答 1

2

在第一个解决方法中,尝试添加@DirtiesContext到睾丸。然后这个带注释的睾丸的上下文在其他测试中没有被使用。

于 2012-12-26T17:41:28.223 回答