概述
JUnit是一个Java语言的单元测试框架。它由Kent Beck和Erich Gamma建立
github地址
https://github.com/junit-team/junit4
Junit官网
http://junit.org/junit4
注:主要是翻译,但是并没有翻译全文。
入门
这个小例子展示了如何写一个单元测试。你需要安装jdk,有文本编辑器。
创建Caculator.java文件
准备
创建一个jnnit-example文件夹,下载并引入junit的jar包,所有的文件都在那个文件夹下创建,命令也是在那执行。创建Caculator.java文件
public class Calculator {
public int evaluate(String expression) {
int sum = 0;
for (String summand: expression.split("\\+"))
sum += Integer.valueOf(summand);
return sum;
}
}
编译文件javac Calculator.java
编译之后会生成Calculator.class文件创建单元测试
import static org.junit.Assert.assertEquals;
import org.junit.Test;
public class CalculatorTest {
@Test
public void evaluatesExpression() {
Calculator calculator = new Calculator();
int sum = calculator.evaluate("1+2+3");
assertEquals(6, sum);
}
}
在linux或者mac上编译
javac -cp .:junit-4.XX.jar CalculatorTest.java
在windows上编译
javac -cp .;junit-4.XX.jar CalculatorTest.java
执行单元测试
在linux或者mac平台上
java -cp .:junit-4.XX.jar:hamcrest-core-1.3.jar org.junit.runner.JUnitCore CalculatorTest
在winddows平台上
java -cp .;junit-4.XX.jar;hamcrest-core-1.3.jar org.junit.runner.JUnitCore CalculatorTest
输出
JUnit version 4.12
.
Time: 0,006
OK (1 test)
这是执行成功的输出结果。
如果执行错误,错误的输出样例
JUnit version 4.12
.E
Time: 0,007
There was 1 failure:
1) evaluatesExpression(CalculatorTest)
java.lang.AssertionError: expected:<6> but was:<-6>
at org.junit.Assert.fail(Assert.java:88)
...
FAILURES!!!
Tests run: 1, Failures: 1
错误信息提示我们,期待的结果是6,但是实际输出为-6,代码88行。
Enclosed使用
采用封闭式的TestTunner的例子
通常我们需要每一个抽象类的子类,使用Enclosed runer,就可以用同一个测试用例类的静态内部类。
通常我们需要每一个抽象类的子类,使用Enclosed runer,就可以用同一个测试用例类的静态内部类。