Протестируйте метод, используя org.springframework.test.util.ReflectionTestUtils - PullRequest
0 голосов
/ 27 июня 2019

У меня есть метод класса, который я хотел бы проверить

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() );
}

Можно ли оставить все как есть, или у меня есть лучший вариант для тестирования?

1 Ответ

1 голос
/ 27 июня 2019

Если написание отдельного теста для метода private повышает доверие к коду, это не должен быть метод private. private методы являются деталями реализации и должны быть протестированы через интерфейс класса.

Если вы не хотите извлекать этот private метод, чтобы сделать его видимым, например, в качестве отдельного класса вы можете использовать модификатор видимости по умолчанию, чтобы хотя бы избежать отражения Java:

public class EllaDtoConverter {
    static void convertToIp( final IrisBo irisBo, EllaRequestDto request ) {
        ...
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...