如何测试这样的类(参见下面的代码)?
public final class A {
public static final String FIRST = "1st";
public static final String SECOND = "2nd";
private A() {
// NOP
}
}
目前我的所有覆盖工具都表示构造函数未包含在测试中。我的测试如下:
assertEquals(A.FIRST, "1st");
assertEquals(A.SECOND, "2nd");
如何测试我的类(class)?
UPD
这段代码解决了我的问题。
@Test
public void magic() throws NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException {
Constructor<A> constructor = A.class.getDeclaredConstructor();
constructor.setAccessible(true);
A instance = constructor.newInstance();
assertNotNull(instance);
}
是的,我同意这不是最好的解决方案。但它有效:)
最佳答案
反射(reflection)可能是正确的选择:How do I test a class that has private methods, fields or inner classes?
顺便说一句,这可能与所提供的链接中的问题重复。
或者,您可以创建一个受保护
的包装方法,该方法仅将所有调用转发到私有(private)
方法吗?
关于java - 如何使用私有(private)构造函数测试最终类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25369541/