Executing HtmlUnit Tests
Great, you've started a Servlet
container! Now you will learn how to use this container to
execute functional tests to validate the web subproject's WAR.
How do I do that?
First things first; write an HtmlUnit test. The purpose of this
chapter is not to teach you the intricacies of HtmlUnit (see
http://htmlunit.sourceforge.net/ for a good
tutorial). Instead, this lab will focus on how you can integrate
HtmlUnit with Maven and the Jetty plug-in. Without further ado, here's
what a test of the QuoteServlet
could look like:
package mdn.qotd.acceptance;
import java.net.URL;
import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.html.HtmlPage;
import junit.framework.TestCase;
public class QuoteServletTest extends TestCase
{
public void testMainServletPage() throws Exception
{
WebClient webClient = new WebClient();
URL url = new URL("http://localhost:8081/qotd-web");
HtmlPage page = (HtmlPage) webClient.getPage(url);
String content = page.getWebResponse().getContentAsString();
assertTrue(content.startsWith("\""));
assertTrue(content.endsWith("\""));
}
}You will notice that an HtmlUnit test case is a JUnit test case
(it extends JUnit's TestCase
class), and this means that you can use the Maven Test plug-in to
execute it. Before doing so you need to add all of HtmlUnit's JAR
dependencies to the acceptance
subproject's project.xml:
<dependency> <groupId>htmlunit</groupId> <artifactId>htmlunit</artifactId> <version>1.3</version> </dependency> ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access