Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "User:Michael.norman.oracle.com/Info on JUnit4"
(→Information on JUnit4) |
(→Information on JUnit4) |
||
Line 9: | Line 9: | ||
**** 4.3.1 2007-03-28 | **** 4.3.1 2007-03-28 | ||
*** 4.4 (current as of 071204) 2007-07-18 | *** 4.4 (current as of 071204) 2007-07-18 | ||
− | + | ||
− | + | === based on Java 5 features === | |
− | + | * no longer need to extend class <tt>TestCase</tt> | |
− | + | * test-method names do not have to start with the prefix <tt>test</tt> | |
− | + | * mark your test method with a @Test annotation | |
+ | * use static import's to get <tt>assert</tt> methods (instead of via inheritance) | ||
'''<s><font color="#7f0055">import</font>''' junit.framework.TestCase;</s> | '''<s><font color="#7f0055">import</font>''' junit.framework.TestCase;</s> | ||
Line 28: | Line 29: | ||
} | } | ||
− | + | === improved test lifecycle management === | |
− | + | * <tt>setUp()</tt> and <tt>tearDown()</tt> replaced with @Before and @After annotations (allows for multiple @Before/@After methods) | |
'''<font color="#7f0055">public class'''</font> CalculatorTest { | '''<font color="#7f0055">public class'''</font> CalculatorTest { | ||
Line 42: | Line 43: | ||
'''<font color="#7f0055">public void'''</font> cleanupTestData() { ... } | '''<font color="#7f0055">public void'''</font> cleanupTestData() { ... } | ||
} | } | ||
− | + | ||
+ | === improved fixture management === | ||
+ | old style: | ||
'''<font color="#7f0055">import'''</font> junit.framework.*; | '''<font color="#7f0055">import'''</font> junit.framework.*; | ||
'''<font color="#7f0055">import'''</font> junit.extensions.TestSetup; | '''<font color="#7f0055">import'''</font> junit.extensions.TestSetup; | ||
Line 51: | Line 54: | ||
'''<font color="#7f0055">public static'''</font> Test suite() { | '''<font color="#7f0055">public static'''</font> Test suite() { | ||
− | |||
TestSuite suite = new TestSuite(); | TestSuite suite = new TestSuite(); | ||
− | |||
− | |||
− | |||
TestSetup wrapper = new TestSetup(suite) { | TestSetup wrapper = new TestSetup(suite) { | ||
protected void setUp() { | protected void setUp() { |
Revision as of 15:34, 4 December 2007
Contents
Information on JUnit4
- successor to most widely used unit-testing framework for Java, JUnit3
- under active development (last JUnit3 release 3.8.2 2006-03-03)
- JUnit 4 released 2006-02-16
- 4.1 2006-04-27
- 4.2 2006-11-16
- 4.3 2006-11-16
- 4.3.1 2007-03-28
- 4.4 (current as of 071204) 2007-07-18
- JUnit 4 released 2006-02-16
based on Java 5 features
- no longer need to extend class TestCase
- test-method names do not have to start with the prefix test
- mark your test method with a @Test annotation
- use static import's to get assert methods (instead of via inheritance)
importjunit.framework.TestCase; import org.junit.Test; import static org.junit.Assert.*; public class CalculatorTestextendsTestCase { @Test public voidtestadd() { .... assertEquals(4, calculator.add( 1, 3 )); } }
improved test lifecycle management
- setUp() and tearDown() replaced with @Before and @After annotations (allows for multiple @Before/@After methods)
public class CalculatorTest { @Before public void prepareTestData() { ... } @Before public void setupMocks() { ... } @After public void cleanupTestData() { ... } }
improved fixture management
old style:
import junit.framework.*; import junit.extensions.TestSetup; public class AllTestsOneTimeSetup { public static Connection conn; // database connection public static Test suite() { TestSuite suite = new TestSuite(); TestSetup wrapper = new TestSetup(suite) { protected void setUp() { setUpDatabaseConnection(); } protected void tearDown() { tearDownDatabaseConnection(); } }; return wrapper; } public static void setUpDatabaseConnection() { // one-time initialization code conn = ...; } public static void tearDownDatabaseConnection() { // one-time cleanup code conn.close() ... } }