-- Start
Junit 是个单元测试框架。
你可以下载下面两个 jar 包,将它们添加到你的 classpath 中。
junit.jar hamcrest-core.jar如果你是 Maven project, 那就更简单了,将下面的断片添加到你的 pom 中就可以了,Maven会自动帮我们下载上面的两个jar包。
<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency>
首先在 Eclipse 中创建一个 Maven 项目,将上面的片段加入 pom 中,然后编写下面的被测试类。
package shangbo.junit; public class StringUtils { public String trimToEmpty(String str) { if (str == null) { return ""; } return str.trim(); } public String trimToNull(String str) { if (str == null) { return null; } str = str.trim(); if (str.equals("")) { return null; } return str; } }
在 Eclipse 中,在被测试类上点击右键,选择 Team --> JUnit Test Case,弹出如下的对话框。
点击 Next 后选中要测试的方法,然后点击 Finish,生成如下的测试类。
package shangbo.junit; import static org.junit.Assert.*; import org.junit.After; import org.junit.AfterClass; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; public class StringUtilsTest { @BeforeClass public static void setUpBeforeClass() throws Exception { } @AfterClass public static void tearDownAfterClass() throws Exception { } @Before public void setUp() throws Exception { } @After public void tearDown() throws Exception { } @Test public void testTrimToEmpty() { fail("Not yet implemented"); } @Test public void testTrimToNull() { fail("Not yet implemented"); } }从上面的测试类我们可以发现:
2. 测试方法用@Test来标识。
3. @BeforeClass 用来标识该方法在所有测试用例运行之前运行且只运行一次。主要用来加载所有测试方法都要用到的资源。
4. @AfterClass 用来标识该方法在所有测试用运行之后运行且只运行一次。主要用来释放资源。
5. @Before 用来标识该方法在每一个测试方法运行之前运行。在运行一些测试方法后,某些资源的状态可能被改变,我们在这个这个方法里重置。
6. @After 用来标识该方法在每一个测试方法运行之后运行。
如果由于某些原因,我们不希望某个测试方法运行,我们可以加@Ignore来忽略这个个测试方法。我们甚至可以说明为什么要忽略这个测试方法。
@Test @Ignore public void testTrimToEmpty() { fail("Not yet implemented"); } @Test @Ignore("Not yet implemented") public void testTrimToNull() { fail("Not yet implemented"); }
如果你觉得某个方法应该在1秒内完成,我们可以这样写。
@Test(timeout=1000) public void testTrimToNull() { fail("Not yet implemented"); }
如果你期望某个测试方法抛出异常,你可以这么写。
@Test(expected=Exception.class) public void testTrimToNull() { fail("Not yet implemented"); }
在 Eclipse 中,在要测试的类中右键,Run As-->JUnit Test 就OK了。