TA的每日心情 | 开心 2021-3-12 23:18 |
---|
签到天数: 2 天 [LV.1]初来乍到
|
准备工作 JDK 版本问题
JUnit 4.x 是基于 java 5 的升级版本,它使用了 Tiger 中的很多新特性来简化原有的使用方式。正因为如此,它并不能直接运行在 JDK1.4.x 版本上。如果您需要在 JDK1.4.x 版本使用 JUnit 的话,请使用 3.8.1 版本。 Junit 环境变量设置
在系统环境变量中的CLASSPATH中添加:$JUNIT_HOMEjunit-4.8.2.jar
或者
在编译的时候使用-classpath参数:javac -cp "$JUNIT_HOMEjunit-4.8.2.jar" MyTest.java JUnit 4 使用 Java 5 中的注解(annotation),以下是JUnit 4 常用的几个 annotation 介绍
@Before:初始化方法
@After:释放资源
@Test:测试方法
@BeforeClass:针对所有测试,只执行一次,且必须为static void
@AfterClass:针对所有测试,只执行一次,且必须为static void JUnit 4 初体验 一个简单的JUnit 4 单元测试例子,无任何业务逻辑上的测试,仅为查看上面介绍的几个常用注解(annotation)的运行顺序 代码清单1 MyTest.java- import org.junit.*;
- import static org.junit.Assert.*;
-
- public class MyTest
- {
- @Before
- public void myBefore()
- {
- System.out.println("in myBefore");
- }
-
- @Test
- public void test1()
- {
- System.out.println("in test1");
- assertEquals((1+1),2);
- }
-
- @Test
- public void test2()
- {
- System.out.println("in test2");
- assertEquals((1+2),3);
- }
-
- @After
- public void myAfter()
- {
- System.out.println("in myAfter");
- }
-
- @BeforeClass
- public static void myBeforeClass()
- {
- System.out.println("start, in myBeforeClass");
- }
-
- @AfterClass
- public static void myAfterClass()
- {
- System.out.println("stop, in myAfterClass");
- }
- }
复制代码 编译运行
javac -d . MyTest.java
java org.junit.runner.JUnitCore org.cnRock.test.MyTest
运行结果
JUnit version 4.8.2
start, in myBeforeClass
.in myBefore
in test1
in myAfter
.in myBefore
in test2
in myAfter
stop, in myAfterClass
Time: 0.016
OK (2 tests)
一个加法运算的小程序,使用JUnit 4 对其进行单元测试 代码清单二 MyAdd.java
package org.cnRock;
public class MyAdd
{
public int add (int a, int b) {
return a + b;
}
}
代码清单三 MyAddTest.java
package org.cnRock.test;
import org.junit.*;
import static org.junit.Assert.*;
public class MyAddTest
{
MyAdd myAdd = new MyAdd();
@Before
public void myBefore()
{
System.out.println("in myBefore");
}
@Test
public void addTest()
{
System.out.println("in addTest");
assertEquals(myAdd.add(1,2),3);
}
@After
public void myAfter()
{
System.out.println("in myAfter");
}
@BeforeClass
public static void myBeforeClass()
{
System.out.println("start, in myBeforeClass");
};
@AfterClass
public static void myAfterClass()
{
System.out.println("stop, in myAfterClass");
}
}
编译运行
javac -d . MyAdd.java
javac -d . MyAddTest.java
java org.junit.runner.JUnitCore org.cnRock.test.MyAddTest
运行结果
JUnit version 4.8.2
start, in myBeforeClass
.in myBefore
in addTest
in myAfter
stop, in myAfterClass
Time: 0.016
OK (1 test)
从测试结果可以看出:
一个JUnit 4 的单元测试用例执行顺序为:
@BeforeClass --> @Before --> @Test --> @After --> @AfterClass 每一个测试方法的调用顺序为:
@Before --> @Test --> @After
源码下载:http://file.javaxxz.com/2014/11/3/000004843.zip |
|