Develop/Spring Boot
20. htmlUnit
자라선
2020. 7. 27. 16:54
view의 html이나 렌더링 된 문서들을 좀 더 심층적으로 테스트하기 위한 유틸리티 유닛 테스트 라이브러리
http://htmlunit.sourceforge.net/gettingStarted.html
· Dependency
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>htmlunit-driver</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>net.sourceforge.htmlunit</groupId>
<artifactId>htmlunit</artifactId>
<scope>test</scope>
</dependency>
· HTML
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>hello</title>
</head>
<body>
<h1 th:text="${name}" name="h1Name">Name</h1>
<form name="testForm" action="/submit">
<input name="testName" value="hiInput"/>
<input type="submit" name="testButton">클릭</input>
</form>
</body>
</html>
· JAVA TEST
import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.html.HtmlForm;
import com.gargoylesoftware.htmlunit.html.HtmlPage;
import com.gargoylesoftware.htmlunit.html.HtmlSubmitInput;
import com.gargoylesoftware.htmlunit.html.HtmlTextInput;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
import org.springframework.test.context.junit4.SpringRunner;
import java.io.IOException;
@RunWith(SpringRunner.class)
@WebMvcTest(SampleController.class)
public class SampleControllerTest {
@Autowired
WebClient webClient;
@Test
public void htmlUnit() throws IOException {
HtmlPage page = webClient.getPage("/hello");
HtmlForm form = page.getFormByName("testForm");
HtmlSubmitInput button = form.getInputByName("testButton");
HtmlTextInput textField = form.getInputByName("testName");
textField.setValueAttribute("new Page");
HtmlPage page2 = button.click();
Assert.assertEquals(page2.getElementByName("h1Name").getTextContent(), "new Page");
System.out.println(page2.toString());
}
}