我在类private static void
中有一个convertToIp
方法,即EllaDtoConverter
,该方法具有私有构造函数。如果我尝试创建该类的实例,它将引发异常。提供了代码,
public final class EllaDtoConverter {
private EllaDtoConverter() {
throw new PrivateConstructorException();
}
private static void convertToIp( final IrisBo irisBo, EllaRequestDto request ) {
if( !isNull( irisBo.getDevice() ) ) {
request.setIp( irisBo.getDevice().getIpAddress() );
}
}
// ..... some code
}
我可以创建IrisBo
和EllaRequestDto
的实例并在方法内部传递。我是否可以选择从另一个类之外调用convertToIp
方法(即使使用反射)?
答案 0 :(得分:0)
从junit
标签开始,我假设您想知道是否可以测试该方法。
我建议您this article,它基本上是说您不应该自己测试私有方法(静态还是非无关紧要)。
主要思想是,单元测试应测试模块所暴露的合同,以确保任何致电您的人都能从您的期望中得到期望,并且私有方法不属于合同的一部分。
答案 1 :(得分:0)
就像@ bracco23之前写的那样,您应该阅读有关测试私有方法的文章。 但是,如果您已经决定要这样做(排除了测试它们带来的所有负面影响),则有一个特殊的框架称为 PowerMockito 。 PowerMockito允许我们测试私有或静态方法。