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