junit api——迹忆客-ag捕鱼王app官网
junit 中的重要的 api
junit 中的最重要的程序包是 junit.framework
它包含了所有的核心类。一些重要的类列示如下:
序号 | 类的名称 | 类的功能 |
---|---|---|
1 | assert | assert 方法的集合 |
2 | testcase | 一个定义了运行多重测试的固定装置 |
3 | testresult | testresult 集合了执行测试样例的所有结果 |
4 | testsuite | testsuite 是测试的集合 |
assert 类
下面介绍的是 org.junit.assert
类:
public class assert extends java.lang.object
这个类提供了一系列的编写测试的有用的声明方法。只有失败的声明方法才会被记录。assert 类的重要方法列式如下:
序号 | 方法 | 描述 |
---|---|---|
1 | void assertequals(boolean expected, boolean actual) | 检查两个变量或者等式是否平衡 |
2 | void assertfalse(boolean condition) | 检查条件是假的 |
3 | void assertnotnull(object object) | 检查对象不是空的 |
4 | void assertnull(object object) | 检查对象是空的 |
5 | void asserttrue(boolean condition) | 检查条件为真 |
6 | void fail() | 在没有报告的情况下使测试不通过 |
下面让我们在例子中来测试一下上面提到的一些方法。在 c:\ > junit_workspace 目录下创建一个名为 testjunit1.java 的类。
testjunit1.java
import org.junit.test; import static org.junit.assert.*; public class testjunit1 { @test public void testadd() { //test data int num= 5; string temp= null; string str= "junit is working fine"; //check for equality assertequals("junit is working fine", str); //check for false condition assertfalse(num > 6); //check for not null value assertnotnull(str); } }
接下来,我们在 c:\ > junit_workspace 目录下创建一个文件名为 testrunner1.java 的类来执行测试案例。
testrunner1.java
import org.junit.runner.junitcore; import org.junit.runner.result; import org.junit.runner.notification.failure; public class testrunner1 { public static void main(string[] args) { result result = junitcore.runclasses(testjunit1.class); for (failure failure : result.getfailures()) { system.out.println(failure.tostring()); } system.out.println(result.wassuccessful()); } }
用 javac 编译 test case 和 test runner 类
c:\junit_workspace>javac testjunit1.java testrunner1.java
现在运行 test runner 它将运行在 test case 类中定义并提供的测试样例。
c:\junit_workspace>java testrunner1
检查输出结果。
true
testcase 类
下面介绍的是 org.junit.testcaset
类:
public abstract class testcase extends assert implements test
测试样例定义了运行多重测试的固定格式。testcase 类的一些重要方法列式如下:
序号 | 方法 | 描述 |
---|---|---|
1 | int counttestcases() | 为被run(testresult result) 执行的测试案例计数 |
2 | testresult createresult() | 创建一个默认的 testresult 对象 |
3 | string getname() | 获取 testcase 的名称 |
4 | testresult run() | 一个运行这个测试的方便的方法,收集由testresult 对象产生的结果 |
5 | void run(testresult result) | 在 testresult 中运行测试案例并收集结果 |
6 | void setname(string name) | 设置 testcase 的名称 |
7 | void setup() | 创建固定装置,例如,打开一个网络连接 |
8 | void teardown() | 拆除固定装置,例如,关闭一个网络连接 |
9 | string tostring() | 返回测试案例的一个字符串表示 |
我们在例子中尝试一下上文提到的方法。在 c:\ > junit_workspace 路径下创建一个名为 testjunit2.java 的类。
testjunit2.java
import junit.framework.testcase; import org.junit.before; import org.junit.test; public class testjunit2 extends testcase { protected double fvalue1; protected double fvalue2; @before public void setup() { fvalue1= 2.0; fvalue2= 3.0; } @test public void testadd() { //count the number of test cases system.out.println("no of test case = " this.counttestcases()); //test getname string name= this.getname(); system.out.println("test case name = " name); //test setname this.setname("testnewadd"); string newname= this.getname(); system.out.println("updated test case name = " newname); } //teardown used to close the connection or clean up activities public void teardown( ) { } }
接下来,在 c:\ > junit_workspace 路径下创建一个名为 testrunner2.java 的类来执行测试案例。
testrunner2.java
import org.junit.runner.junitcore; import org.junit.runner.result; import org.junit.runner.notification.failure; public class testrunner2 { public static void main(string[] args) { result result = junitcore.runclasses(testjunit2.class); for (failure failure : result.getfailures()) { system.out.println(failure.tostring()); } system.out.println(result.wassuccessful()); } }
用 javac 编译 test case
和 test runner
类
c:\junit_workspace>javac testjunit2.java testrunner2.java
现在运行 test runner 它将运行在 test case 类中定义并提供的测试样例。
c:\junit_workspace>java testrunner2
检查输出结果。
no of test case = 1
test case name = testadd
updated test case name = testnewadd
true
testresult 类
下面定义的是 org.junit.testresult
类:
public class testresult extends object
testresult
类收集所有执行测试案例的结果。它是收集参数层面的一个实例。这个实验框架区分失败和错误。失败是可以预料的并且可以通过假设来检查。错误是不可预料的问题就像 arrayindexoutofboundsexception
。testresult
类的一些重要方法列式如下:
序号 | 方法 | 描述 |
---|---|---|
1 | void adderror(test test, throwable t) | 在错误列表中加入一个错误 |
2 | void addfailure(test test, assertionfailederror t) | 在失败列表中加入一个失败 |
3 | void endtest(test test) | 显示测试被编译的这个结果 |
4 | int errorcount() | 获取被检测出错误的数量 |
5 | enumeration errors() | 返回错误的详细信息 |
6 | int failurecount() | 获取被检测出的失败的数量 |
7 | void run(testcase test) | 运行 testcase |
8 | int runcount() | 获得运行测试的数量 |
9 | void starttest(test test) | 声明一个测试即将开始 |
10 | void stop() | 标明测试必须停止 |
在 c:\ > junit_workspace 路径下创建一个名为 testjunit3.java 的类。
testjunit3.java
import org.junit.test; import junit.framework.assertionfailederror; import junit.framework.testresult; public class testjunit3 extends testresult { // add the error public synchronized void adderror(test test, throwable t) { super.adderror((junit.framework.test) test, t); } // add the failure public synchronized void addfailure(test test, assertionfailederror t) { super.addfailure((junit.framework.test) test, t); } @test public void testadd() { // add any test } // marks that the test run should stop. public synchronized void stop() { //stop the test here } }
接下来,在 c:\ > junit_workspace 路径下创建一个名为 testrunner3.java 的类来执行测试案例。
testrunner3.java
import org.junit.runner.junitcore; import org.junit.runner.result; import org.junit.runner.notification.failure; public class testrunner3 { public static void main(string[] args) { result result = junitcore.runclasses(testjunit3.class); for (failure failure : result.getfailures()) { system.out.println(failure.tostring()); } system.out.println(result.wassuccessful()); } }
用 javac 编译 test case 和 test runner 类
c:\junit_workspace>javac testjunit3.java testrunner3.java
现在运行 test runner 它将运行在 test case 类中定义并提供的测试样例。
c:\junit_workspace>java testrunner3
检查输出结果。
true
testsuite 类
下面定义的是 org.junit.testsuite
类:
public class testsuite extends object implements test
testsuite
类是测试的组成部分。它运行了很多的测试案例。testsuite
类的一些重要方法列式如下:
序号 | 方法 | 描述 |
---|---|---|
1 | void addtest(test test) | 在套中加入测试。 |
2 | void addtestsuite(class testclass) | 将已经给定的类中的测试加到套中。 |
3 | int counttestcases() | 对这个测试即将运行的测试案例进行计数。 |
4 | string getname() | 返回套的名称。 |
5 | void run(testresult result) | 在 testresult 中运行测试并收集结果。 |
6 | void setname(string name) | 设置套的名称。 |
7 | test testat(int index) | 在给定的目录中返回测试。 |
8 | int testcount() | 返回套中测试的数量。 |
9 | static test warning(string message) | 返回会失败的测试并且记录警告信息。 |
在 c:\ > junit_workspace 路径下创建一个名为 junittestsuite.java 的类。
junittestsuite.java
import junit.framework.*; public class junittestsuite { public static void main(string[] a) { // add the test's in the suite testsuite suite = new testsuite(testjunit1.class, testjunit2.class, testjunit3.class ); testresult result = new testresult(); suite.run(result); system.out.println("number of test cases = " result.runcount()); } }
用 javac 编译 test suit
c:\junit_workspace>javac junittestsuite.java
现在运行 test suit
c:\junit_workspace>java junittestsuite
检查输出结果。
no of test case = 1
test case name = testadd
updated test case name = testnewadd
number of test cases = 3