From Wikipedia, the free encyclopedia
Jump to: navigation, search
Not to be confused with G-Unit.
"Junit" redirects here. For the Egyptian goddess, see Junit (goddess).
Developer(s) Kent Beck, Erich Gamma, David Saff, Mike Clark (University of Calgary)
Stable release 4.12[1] / December 4, 2014 (2014-12-04)
Written in Java
Operating system Cross-platform
Type Unit testing tool
License Eclipse Public License[2]
Website junit.org

JUnit is a unit testing framework for the Java programming language. JUnit has been important in the development of test-driven development, and is one of a family of unit testing frameworks which is collectively known as xUnit that originated with SUnit.

JUnit is linked as a JAR at compile-time; the framework resides under package junit.framework for JUnit 3.8 and earlier, and under package org.junit for JUnit 4 and later.

A research survey performed in 2013 across 10,000 GitHub projects found that JUnit, along with slf4j-api, are the most popular libraries. Each library was used by 30.7% of projects. [3]

Example of JUnit test fixture[edit]

A JUnit test fixture is a Java object. With older versions of JUnit, fixtures had to inherit from junit.framework.TestCase, but the new tests using JUnit 4 should not do this.[4] Test methods must be annotated by the @Test annotation. If the situation requires it,[5] it is also possible to define a method to execute before (or after) each (or all) of the test methods with the @Before (or @After) and @BeforeClass (or @AfterClass) annotations.[4]

import org.junit.*;
public class TestFoobar {
    public static void setUpClass() throws Exception {
        // Code executed before the first test method       
    public void setUp() throws Exception {
        // Code executed before each test    
    public void testOneThing() {
        // Code that tests one thing
    public void testAnotherThing() {
        // Code that tests another thing
    public void testSomethingElse() {
        // Code that tests something else
    public void tearDown() throws Exception {
        // Code executed after each test   
    public static void tearDownClass() throws Exception {
        // Code executed after the last test method 


JUnit alternatives have been written in other languages including:

See also[edit]


  1. ^ JUnit Releases
  2. ^ "Relicense JUnit from CPL to EPL". Philippe Marschall. 18 May 2013. Retrieved 20 September 2013. 
  3. ^ "We Analyzed 30,000 GitHub Projects – Here Are The Top 100 Libraries in Java, JS and Ruby". 
  4. ^ a b Kent Beck, Erich Gamma. "JUnit Cookbook". junit.sourceforge.net. Retrieved 2011-05-21. 
  5. ^ Kent Beck. "Expensive Setup Smell". C2 Wiki. Retrieved 2011-11-28. 

External links[edit]