我正在处理我的测试根据声明顺序通过或失败的情况。这当然指向没有正确隔离的测试。但我对如何寻找问题感到困惑。问题是我的 junit 测试派生自一个属于基于 junit 构建的测试框架并具有一些依赖注入容器的类。容器通过基类设置为每个测试重置,因此至少在容器中没有延迟对象,因为容器本身是新的。所以我倾向于以下场景。
- test1 间接导致一些 classA 将 classA.somestaticMember 设置为 xyz 值。test obj 不直接维护对 classA 的任何引用,但在 test1 结束时,vm 仍会使用值 xyz 加载 classA。
- test2 访问 classA 并在一些具有 xyz 值的静态成员上绊倒。
问题是a)我不知道这是否确实如此 - 我该如何找到它?我似乎无法在代码中找到对静态变量的引用... b) 有没有办法告诉 junit 转储其所有加载的类并为每个测试方法重新执行?