教程 > junit 教程 > 阅读:24

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 casetest 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 casetest 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 类收集所有执行测试案例的结果。它是收集参数层面的一个实例。这个实验框架区分失败和错误。失败是可以预料的并且可以通过假设来检查。错误是不可预料的问题就像 arrayindexoutofboundsexceptiontestresult 类的一些重要方法列式如下:

序号 方法 描述
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 casetest 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

查看笔记

扫码一下
查看教程更方便
网站地图