我们问题的根源是单例。但是单例模式很难被破坏,同时我们有很多使用单例模式的单元测试,而没有在tearDown()方法中小心地完全清除它们。我认为检测此类测试的一个好方法是寻找内存泄漏。如果在tearDown()和System.gc()之后使用的内存比测试开始时使用的内存多,则测试泄漏或类加载器加载了更多类。有没有办法自动检测此类问题?
最佳答案
您能否在 TestCase 和您的各个测试类之间引入一个子类来进行清理?那么子类将只负责调用 super.teardown() - 并且只有那些拥有自己的teardown() 的子类。
关于java - 自动查找泄漏内存的 JUnit 测试的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/863948/