Как написать тестовые случаи JUnit без передачи аргументов из тестового класса - PullRequest
0 голосов
/ 05 февраля 2020

Я новичок в Junit, и я не понимаю, как мы должны покрыть код ниже без передачи аргументов из тестового класса. Может кто-нибудь предложить мне, пожалуйста.

  public void process() {
        String message = "data";
        if (message != null && message.equalsIgnoreCase("data")) {
            System.out.println("print message"+message);
        } else {
            System.out.println("empty message"+message);
        }
    }

Ответы [ 2 ]

0 голосов
/ 05 февраля 2020
@Test
void test() {
    ByteArrayOutputStream bytestream = new ByteArrayOutputStream();
    System.setOut(new PrintStream(bytestream));
    new Testing().process();
    assertEquals("print messagedata\r\n", new String(bytestream.toByteArray(), StandardCharsets.UTF_8));
}

Однако вы не можете протестировать блок else, так как он никогда не может быть выполнен с message, установленным в process() -методе

с "data".
0 голосов
/ 05 февраля 2020

Вы можете использовать JUnit assertEquals et c. методы, но только если ваш метод возвращает что-то.

Тем не менее, я не вижу здесь проблемы, поскольку ваш метод не принимает никаких параметров.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...