Over a million developers have joined DZone.

JUnit Testing of Spring MVC application: Testing Frontend Using Selenium

· Java Zone

Discover how powerful static code analysis and ergonomic design make development not only productive but also an enjoyable experience, brought to you in partnership with JetBrains

In continuation of my earlier blogs on Introduction to Spring MVC and Testing Controller in Spring MVC, in this blog I will demonstrate how to test Web layer in Spring MVC. We can also incorporate Authentication and Authorization, learn more about it in the blogs on Spring Security.

The objective of this demo is 2 fold, to build the plumbing for Web layer using TDD and actually test the web layer using Selenium Java API.

For people in hurry, get the latest code from Github and run the below 2 commands in order

mvn clean tomcat7:run

mvn clean test -Dtest=com.example.bookstore.web.frontend.SeleniumLoginFrontendTest

Maven dependency to use Selenium is as below


Also you need to install Selenium IDE plugin for Firefox.

Since this is a web application, we need to build the plumbing for web application, See the com.example.bookstore.web.BookstoreWebApplicationInitializer for more details. Also notice that we don’t need any web.xml if we use the latest Spring 3.0. But when you try to build the project, maven complains that war project should have web.xml. In order to get around this we need to set failOnMissingWebXml to false as shown in the below configuration in pom.xml,


Now let us start exploring the JUnit test for this,

public class SeleniumLoginFrontendTest {

private WebDriver browser;

public void setup() {
browser = new FirefoxDriver();

public void startTest() {


// Will throw exception if elements not found


assertEquals("John", browser.findElement(By.id("firstName")).getAttribute("value"));

public void tearDown() {

Finally run the application in the tomcat7 using Maven command and run the JUnit test as mentioned in the beginning of this blog. The tests will succeed.

I hope this blog helped you. In my next blog, I will talk about how to implement Spring Web flow using TDD.


Pro Spring MVC: With Web Flow by by Marten Deinum, Koen Serneels


Learn more about Kotlin, a new programming language designed to solve problems that software developers face every day brought to you in partnership with JetBrains.


Published at DZone with permission of Krishna Prasad, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

The best of DZone straight to your inbox.

Please provide a valid email address.

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}