Jump to content

JUnit: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
No edit summary
Monkbot (talk | contribs)
m Task 18 (cosmetic): eval 5 templates: hyphenate params (1×);
Line 8: Line 8:
| developer = [[Kent Beck]], [[Erich Gamma]], David Saff, Kris Vasudevan
| developer = [[Kent Beck]], [[Erich Gamma]], David Saff, Kris Vasudevan
| latest release version = 5.6.3
| latest release version = 5.6.3
| latest release date = {{release date and age|2020|10|26}}<ref name="github">{{cite web|url=https://github.com/junit-team/junit5/releases|website=github.com|title=JUnit Releases |accessdate=2021-01-18}}</ref>
| latest release date = {{release date and age|2020|10|26}}<ref name="github">{{cite web|url=https://github.com/junit-team/junit5/releases|website=github.com|title=JUnit Releases |access-date=2021-01-18}}</ref>
| operating system = [[Cross-platform]]
| operating system = [[Cross-platform]]
| programming language = [[Java programming language|Java]]
| programming language = [[Java programming language|Java]]

Revision as of 16:29, 25 January 2021

JUnit
Developer(s)Kent Beck, Erich Gamma, David Saff, Kris Vasudevan
Stable release
5.6.3 / October 26, 2020; 3 years ago (2020-10-26)[1]
Repository
Written inJava
Operating systemCross-platform
TypeUnit testing tool
LicenseEclipse Public License[2] (relicensed from CPL before)
Websitejunit.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 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.[3]

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.[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 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 
    }
}

See also

References

  1. ^ "JUnit Releases". github.com. Retrieved 2021-01-18.
  2. ^ "Relicense JUnit from CPL to EPL". Philippe Marschall. 18 May 2013. Retrieved 2013-09-20.
  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.