JUnit
| Developer(s) | Kent Beck, Erich Gamma, David Saff |
|---|---|
| Stable release | 4.10[1] / September 29, 2011 |
| Written in | Java |
| Operating system | Cross-platform |
| Type | Unit testing tool |
| License | Common Public License |
| Website | junit.sourceforge.net |
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 collectively known as xUnit that originated with SUnit.
JUnit is linked as a JAR at compile-time; the framework resides under packages junit.framework for JUnit 3.8 and earlier and under org.junit for JUnit 4 and later.
Contents |
[edit] 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 new tests using JUnit 4 should not do this[2]. Test methods must be annotated by the @Test annotation. If the situation requires it[3], 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{ @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 } }
[edit] Ports
JUnit has been ported to other languages including:
- Actionscript (FlexUnit)
- Ada (AUnit)
- C (CUnit)
- C# (NUnit)
- C++ (CPPUnit)
- Fortran (fUnit)
- Delphi (DUnit)
- Free Pascal (FPCUnit)
- JavaScript (JSUnit)
- Objective-C (OCUnit)
- Perl (Test::Class and Test::Unit)
- PHP (PHPUnit)
- Python (PyUnit)
- R (RUnit)
- Haskell (HUnit)
- Qt (QTestLib)
[edit] See also
- Mock object
- TestNG, an alternative to JUnit
- List of unit testing frameworks
- Test fixture
- Mockito and PowerMock, mocking extensions to JUnit
[edit] References
- ^ JUnit Releases
- ^ Kent Beck, Erich Gamma. "JUnit Cookbook". junit.sourceforge.net. http://junit.sourceforge.net/doc/cookbook/cookbook.htm. Retrieved 2011-05-21.
- ^ Kent Beck. "Expensive Setup Smell". C2 Wiki. http://c2.com/cgi/wiki?ExpensiveSetUpSmell. Retrieved 2011-11-28.
- ^ Kent Beck, Erich Gamma. "JUnit Cookbook". junit.sourceforge.net. http://junit.sourceforge.net/doc/cookbook/cookbook.htm. Retrieved 2011-05-21.