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