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.
import org.junit.*; public class FoobarTest { @BeforeClass public static void setUpClass throws Exception { // Code executed before the first test method } @Before public void setUp throws Exception { // Code executed before each test } @Test public void testOneThing { // Code that tests one thing } @Test public void testAnotherThing { // Code that tests another thing } @Test public void testSomethingElse { // Code that tests something else } @After public void tearDown throws Exception { // Code executed after each test } @AfterClass public static void tearDownClass throws Exception { // Code executed after the last test method } }
JUnit alternatives have been written in other languages including: