Running categorized Tests using JUnit, Maven and Annotated-Test Suites

Sometimes we need to classify the tests in a project and a possible solution to achieve this goal is to assign different categories to the tests. Often we’re doing this to separate the execution of fast-running and long-running tests or to run a specific set of tests that is only applicable in special situations. To run a specific set of categorized tests there are different options and in the following tutorial we’ll be covering two of them: by configuring the Maven Surefire Plug-in or by using a JUnit Test Suite and the JUnit annotations. ...

December 6, 2012 · 4 min · 748 words · Micha Kops

New features in JUnit 4.11

JUnit is one of the most popular testing frameworks out there. Version 4.11 has just been released and offers some nice improvements that you shouldn’t miss. Dependencies In older versions of JUnit there were two dependencies .. junit:junit contained an old version of hamcrest and could cause some nasty trouble .. junit:junit-dep just referenced hamcrest the maven way. Now with version 4.11 there is just junit:junit with clean references to hamcrest and junit:junit-dep is relocated to junit:junit. ...

November 18, 2012 · 4 min · 850 words · Micha Kops

Make your Tests more readable with custom Hamcrest Matchers

Everyday we’re writing tests for our software and sometimes we’re in a situation where we’re testing a specific type or object very often. Luckily Hamcrest allows us to create custom matchers by subclassing from a given variety of available matchers. Adding jUnit and Hamcrest First add the dependencies for JUniti and Hamcrest to your project’s pom.xml or alternative build system. <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.10</version> <scope>test</scope> </dependency> <dependency> <groupId>org.hamcrest</groupId> <artifactId>hamcrest-all</artifactId> <version>1.3</version> <scope>test</scope> </dependency> </dependencies> ...

October 28, 2012 · 3 min · 610 words · Micha Kops

Selenium WebDriver, Selenium Server and PageObjects by Example

A lot has changed since Selenium RC and WebDriver has given us a new syntax to write tests for our web pages. PageObjects add an abstraction to the pages under test and finally we’re able to programmatically start Selenium server instances and use them to run the tests. In the following tutorial, we’re writing some tests using PageObjects, WebDriver, Selenium Server and finally we’re even taking some screenshots of our tested web pages.. ...

March 6, 2012 · 4 min · 787 words · Micha Kops

Ordering your JUnit Rules using a RuleChain

JUnit Rules are a handy solution if one needs to alter test methods or wants to share common functionality between several test cases. JUnit 4.10 introduced a new class to order several rules according to our needs using a so called rule-chain. In the following example, we’re going to create a simple custom rule and afterwards bind several instances of it in a specified order to a test method. Adding JUnit Just one Maven dependency needed here – JUnit 4.10 ...

February 21, 2012 · 3 min · 560 words · Micha Kops

Testing RESTful Web Services made easy using the REST-assured Framework

Figure 1. REST-assured Integration Test Tutorial Logo There are many frameworks out there to facilitate testing RESTful webservices but there is one framework I’d like to acquaint you with is my favourite framework named REST-assured. REST-assured offers a bunch of nice features like a DSL-like syntax, XPath-Validation, Specification Reuse, easy file uploads and those features we’re going to explore in the following article. With a few lines of code and Jersey I have written a RESTful web service that allows us to explore the features of the REST-assured framework and to run tests against this service. ...

October 23, 2011 · 9 min · 1742 words · Micha Kops

Oh JBehave, Baby! Behaviour Driven Development using JBehave

Behaviour Driven Development is the keyword when we’re talking about test scenarios written in an ubiquitous language, strong interaction with stakeholders, product owners or testers and well described, common understandable test scenarios. The popular JBehave framework is our tool of choice here and allows us to decouple our test stories from the test classes, offers an integration for web tests using Selenium and finally there’s a helpful Maven plugin for JBehave, too. ...

May 31, 2011 · 14 min · 2849 words · Micha Kops

Mocking, Stubbing and Test Spying using the Mockito Framework and PowerMock

Today we’re going to take a look at the Mockito framework that not only does sound like my favourite summer cocktail but also offers nice testing, mocking/stubbing, test-spying features and mock injections. After that we’re going to take a look on how to mock static or final classes by extending Mockito’s capabilities with PowerMock. Prerequisites We don’t need much for the following samples .. Java of course, Maven dependency management and that’s all .. ...

March 27, 2011 · 8 min · 1620 words · Micha Kops

Enterprise Java Bean EJB 3.1 Testing using Maven and embedded Glassfish

Are you playing around with the shiny new 3.1 EJB API? Using Maven for your Java projects? Need an easy way to write and execute tests for your EJBs that depends on an Java Application Server? No problem using Maven Archetypes, the Maven EJB Plugin and the GlassFish embedded Application Container.. Prerequisites For the following tutorial we’re going to need an installation of Maven and of course – the Java Development Kit! ...

January 1, 2011 · 5 min · 969 words · Micha Kops

Java Snippets

Remote Debug a Pod’s Java Process Simple steps for remote debugging a Java process running on a k8 pod: Edit deployment and add the following parameters to the Java start line: -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=127.0.0.1:5005 Also add the following port mapping at the section container → ports in the deployment: - containerPort: 5005 protocol: TCP Safe, wait for the new pods and then add a port forward for port 5005 for this pod: kubectl port-forward podname 5005 ...

March 1, 2010 · 13 min · 2583 words · Micha Kops