Samiksha Jaiswal (Editor)

JUnit

Updated on
Edit
Like
Comment
Share on FacebookTweet on TwitterShare on LinkedInShare on Reddit
Written in
  
Java

Operating system
  
Cross-platform

Developer(s)
  
Kent Beck, Erich Gamma, David Saff, Mike Clark (University of Calgary)

Stable release
  
4.12 / December 4, 2014 (2014-12-04)

Preview release
  
5 Milestone 3 / November 30, 2016 (2016-11-30)

Repository
  
github.com/junit-team/junit4

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.

Contents

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 Java projects hosted on GitHub found that JUnit, (in a tie with slf4j-api), was the most commonly included external library. Each library was used by 30.7% of projects.

Example of JUnit test fixture

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. Test methods must be annotated by the @Test annotation. If the situation requires it, 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.

Ports

JUnit alternatives have been written in other languages including:

  • Actionscript (FlexUnit)
  • Ada (AUnit)
  • C (CUnit)
  • C# (NUnit)
  • C++ (CPPUnit, CxxTest)
  • Coldfusion (MXUnit)
  • Erlang (EUnit)
  • Eiffel (Auto-Test) - JUnit inspired getest (from Gobosoft), which led to Auto-Test in Eiffel Studio.
  • Fortran (fUnit, pFUnit)
  • Delphi (DUnit)
  • Free Pascal (FPCUnit)
  • Haskell (HUnit)
  • JavaScript (JSUnit)
  • Microsoft .NET (NUnit)
  • Objective-C (OCUnit)
  • OCaml (OUnit)
  • Perl (Test::Class and Test::Unit)
  • PHP (PHPUnit)
  • Python (PyUnit)
  • Qt (QTestLib)
  • R (RUnit)
  • Ruby (Test::Unit)
  • References

    JUnit Wikipedia