Java 使用org.springframework.Test.util.ReflectionTestUtils测试方法
我有一个我想测试的类方法Java 使用org.springframework.Test.util.ReflectionTestUtils测试方法,java,reflection,junit,Java,Reflection,Junit,我有一个我想测试的类方法 public class EllaDtoConverter { private static void convertToIp( final IrisBo irisBo, EllaRequestDto request ) { if( nonNull( irisBo.getDevice() ) ) { request.setIp( irisBo.getDevice().getIpAddress() );
public class EllaDtoConverter {
private static void convertToIp( final IrisBo irisBo, EllaRequestDto request ) {
if( nonNull( irisBo.getDevice() ) ) {
request.setIp( irisBo.getDevice().getIpAddress() );
}
}
}
我的测试已经提供
@Test
public void testConvertToIp() {
assertNotNull( validIrisBo.getDevice() );
assertNotNull( validIrisBo.getDevice().getIpAddress() );
EllaRequestDto ellaRequestDto = new EllaRequestDto();
ReflectionTestUtils.invokeMethod( ellaRequestDto, "setIp", validIrisBo.getDevice().getIpAddress() );
}
这样可以吗?或者我有更好的选择来测试?如果为私有方法编写单独的测试会增加代码的可信度,而不应该是私有方法。私有方法是实现细节,应该通过类的接口进行测试 如果您不想提取此私有方法以使其可见(例如作为单独的类),您可以使用默认的可见性修饰符来至少避免Java反射:
public class EllaDtoConverter {
static void convertToIp( final IrisBo irisBo, EllaRequestDto request ) {
...
}
}
我相信这个建议是好的,但是,我不能用ATM的源代码做任何事情。那么,根据提供的范围,您是否有任何其他建议/建议?是否有可能了解为什么这个问题会被否决,这样我以后就不会问类似的问题?