根据 Class 的 javadoc
Returns the class loader for the class. Some implementations may use null to represent the bootstrap class loader.
当 getClassLoader 返回 null 时,我们必须对逻辑进行单元测试。我们正在使用 Java 的 sun 实现(Java 6)。我们怎样才能做到这一点。
最佳答案
我的第一个想法是模拟 Class 对象,但正如另一个问题中提到的:Mocking a class object using Mockito and PowerMockito
你不能。像 Mockito、Easymock(和 Powermock)这样的模拟对象库无法模拟引导类加载器加载的类,因为在加载模拟对象库时它们已经被加载了。所以它无法操作字节码。
因此,一个简单的解决方法是查看是否可以使用引导类加载器加载的类,例如 java.lang
、java.net
、java.io
中的类)。
例如String.class.getClassloader()
将返回null
。
如果您无法轻松使用引导类进行测试,那么我不会太担心该分支,因为它无法在生产中执行。
关于java - 如何单元测试 getClassLoader() 返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27352137/