Как вы можете проверить этот веб-слой в junit? - PullRequest
1 голос
/ 15 мая 2019

как вы можете протестировать этот веб-слой в junit?

@GetMapping("/")
@ResponseBody
public String index() {
    Map<String, Object> context = Maps.newHashMap();
    context.put("detail", "hello!");
    return  templateRender.render(getTemplate("index.html"), context);
}

Ответы [ 2 ]

1 голос
/ 15 мая 2019

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

Здесь у вас не так много вариантов. Вы можете либо:

  1. Доверяйте , что метод render(..) хорошо выполняет свою работу и уже протестирован его провайдером. Я бы предпочел сосредоточиться на методе getTemplate(..), возвращает ли он правильный шаблон.
  2. Используйте автоматический тест front-end для вызова URL и обнаружения возвращенной веб-страницы в соответствии с заданными параметрами. Фреймворк Selenium или Robot способен сделать это. Тесты дыма и здравомыслия также охватывают это и сервер для этой цели.
  3. Используйте стороннюю библиотеку, как уже предлагалось. Тем не менее, я не вижу реальной выгоды в увеличении показателей покрытия кода (будьте осторожны - это может быть ложно-положительным показателем).
0 голосов
/ 15 мая 2019

Из того, что я понимаю, вам нужно протестировать веб-страницу через JUnit. Вы можете использовать JWebUnit:

@Before
public void prepare() {
    setBaseUrl("http://localhost:8080/test");
}

@Test
public void testLogin() {
    beginAt("/home");
    clickLink("login");
    assertTitleEquals("Login");
}

}

Источник: https://jwebunit.github.io/jwebunit/

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