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的源代码做任何事情。那么,根据提供的范围,您是否有任何其他建议/建议?是否有可能了解为什么这个问题会被否决,这样我以后就不会问类似的问题?