Blog

JUnit in a Nutshell: Yet Another JUnit Tutorial

On September 24, 2014, Posted by , In JUnit, By ,,, , With No Comments

Why Another JUnit Tutorial? JUnit seems to be the most popular testing tool for developers within the Java world. So it is no wonder that there have been written some good books about this topic. But I still meet quite often programmers, who at most have a vague understanding of…

How to Access a Git Repository with JGit

On September 22, 2014, Posted by , In Eclipse, By ,,, , With No Comments

A Git repository is represented in JGit through the Repository class that can be viewed as a handle to a repository. With a Repository instance, you can create JGit commands (through the Git factory class), gain access to configuration settings, resolve refs, etc. There are several ways to obtain a…

How to Safely Use SWT’s Display asyncExec

On September 15, 2014, Posted by , In Eclipse, By ,, , With No Comments

Most user interface (UI) toolkits are single-threaded and SWT is no exception. This means that UI objects must be accessed exclusively from a single thread, the so-called UI thread. On the other hand, long running tasks should be executed in background threads in order to keep the UI responsive. This…

JUnit in a Nutshell: Unit Test Assertion

On September 10, 2014, Posted by , In JUnit, By ,,, , With 2 Comments

The last chapter of my multi-part tutorial about JUnit essentials covers various unit test assertion techniques. It elaborates on the pros and cons of the built-in mechanism, Hamcrest matchers and AssertJ assertions. The ongoing example enlarges upon the subject and shows how to create and use custom matchers/assertions. Unit Test…

JUnit in a Nutshell: Test Runners

On September 3, 2014, Posted by , In JUnit, By ,,, , With 1 Comment

The fourth chapter of my multi-part tutorial about JUnit testing essentials explains the purpose of the tool’s exchangable test runners architecture and introduces some of the available implementations. The ongoing example enlarges upon the subject by going through the different possibilities of writting parameterized tests. Since I have already published…

Travis: Continuous Integration for GitHub Projects

On September 1, 2014, Posted by , In Common, By ,, , With No Comments

In a recent project I got the opportunity to work with Travis, a lean, hosted continuous integration service used to build GitHub projects that is free to use for public repositiories. This post gives a brief introduction on how to build projects with Travis. Simple Setup Setting up Travis to…

JUnit in a Nutshell: Test Isolation

On August 27, 2014, Posted by , In JUnit, By ,,, , With 1 Comment

Chapter three of my multi-part tutorial about JUnit essentials discusses the implications of unit dependencies for testing. The post illustrates the test isolation principle and shows how it can be put into practice – based on the nomenclature defined by Meszaros in xUnit Test Patterns [MES]. The ongoing example continues…

JUnit in a Nutshell: Test Structure

On August 18, 2014, Posted by , In JUnit, By ,,, , With 1 Comment

Chapter two of my multi-part tutorial about JUnit testing essentials will continue the ongoing example and work out the common structure that charactarizes well written unit tests. The nomenclature used throughout this post was defined by Meszaros in xUnit Test Patterns [MES]. The Four Phases of a Test The tutorial’s…

JUnit in a Nutshell: Hello World

On August 12, 2014, Posted by , In JUnit, By ,,, , With 5 Comments

JUnit in a Nutshell is a multi-part tutorial about the essentials of JUnit testing. This Hello World chapter introduces the very basics of a test: how it is written, executed and evaluated. The post also kicks off the ongoing example, which is continuously carried forward throughout this mini-series. Why bother?…

Clean JUnit Throwable-Tests with Java 8 Lambdas

On July 28, 2014, Posted by , In JUnit, By ,,,, , With 2 Comments

Recently I was involved in a short online discussion on twitter and google+ which concerned the question why the arrival of Java 8 Lambda expressions makes the catch-exception library1 obsolete. This was triggered by a brief announcement that the library won’t be longer maintained as lambdas will make it redundant….