| Developer(s) | Kent Beck, Erich Gamma, David Saff, Mike Clark (University of Calgary) | 
|---|---|
| Stable release | 4.12 / December 4, 2014
 | 
| Preview release | 5 Milestone 3 / November 30, 2016
 | 
| Repository | github | 
| Written in | Java | 
| Operating system | Cross-platform | 
| Type | Unit testing tool | 
| License | Eclipse Public License (relicensed from CPL before) | 
| Website | junit | 
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 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.
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.
JUnit alternatives have been written in other languages including: