Junit

-- Start

Junit 简介

Junit 是个单元测试框架。

下载和安装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,弹出如下的对话框。

Junit_第1张图片

点击 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");
	}

}
从上面的测试类我们可以发现:
1. 测试类无需继承任何 Junit 类。

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了。


--  更多参见:Open Source 精萃
--  声 明:转载请注明出处
-- Last Updated on 2014-08-21
-- Written by ShangBo on 2014-08-21
-- End

你可能感兴趣的:(JUnit)