JUnit - API核心类

JUnit - API核心类 首页 / JUnit入门教程 / JUnit - API核心类

JUnit中最重要的软件包是 junit.framework ,其中包含所有核心类。一些重要的类如下-

类名用途
Assert一组断言方法。
TestCase一个测试用例定义以运行多个测试。
TestResult TestResult收集执行测试用例的输出。
TestSuite TestSuite是测试的组合。

Assert 类

以下是 org.junit.Assert 类的声明-

public class Assert extends java.lang.Object

此类提供了一组断言方法,可用于编写测试。Assert类的一些重要方法如下-

Sr.No.Methods & Remark
1

void assertEquals(boolean expected,boolean actual)

检查两个 primitives/objects 是否相等。

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的Java类文件。

import org.junit.Test;
import static org.junit.Assert.*;

public class TestJunit1 {
   @Test
   public void testAdd() {
      //测试数据
      int num = 5;
      String temp = null;
      String str = "Junit is working fine";

      //检查是否相等
      assertEquals("Junit is working fine", str);
      
      //检查错误条件
      assertFalse(num > 6);

      //检查非空值
      assertNotNull(temp);
   }
}

接下来,在C:\> JUNIT_WORKSPACE中创建一个名为TestRunner1.java的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 Runner类。

C:\JUNIT_WORKSPACE>javac TestJunit1.java TestRunner1.java

现在运行Test Runner,它将运行在提供的Test Case类中定义的测试用例。

C:\JUNIT_WORKSPACE>java TestRunner1

验证输出。

true

TestCase 类

以下是 org.junit.TestCase 类的声明-

public abstract class TestCase extends Assert implements Test

测试用例定义了运行多个测试。 TestCase 类的一些重要方法如下-

Sr.No.Methods & Remark
1

int countTestCases()

计算运行执行的测试用例的数量。

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的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() {
      //计算测试用例的数量
      System.out.println("No of Test Case="+ this.countTestCases());
		
      //测试 getName
      String name = this.getName();
      System.out.println("Test Case Name="+ name);

      //测试 setName
      this.setName("testNewAdd");
      String newName = this.getName();
      System.out.println("Updated Test Case Name="+ newName);
   }
	
   //tearDown 用于关闭连接或清理数据
   public void tearDown(  ) {
   }
}

接下来,在C:\> JUNIT_WORKSPACE中创建一个名为TestRunner2.java的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 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。  

Sr.No.Methods & Remark
1

void addError(Test test,Throwable t)

将错误添加到错误列表。

2

void addFailure(Test test,AssertionFailedError t)

将失败添加到失败列表中。

3

void endTest(Test test)

通知输出测试已完成。

4

int errorCount()

获取检测到的错误数。

5

Enumeration<TestFailure> 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的Java类文件。

import org.junit.Test;
import junit.framework.AssertionFailedError;
import junit.framework.TestResult;

public class TestJunit3 extends TestResult {
   //添加错误
   public synchronized void addError(Test test, Throwable t) {
      super.addError((junit.framework.Test) test, t);
   }

   //添加失败
   public synchronized void addFailure(Test test, AssertionFailedError t) {
      super.addFailure((junit.framework.Test) test, t);
   }
	
   @Test
   public void testAdd() {
      //添加任何测试
   }
   
   //指示测试运行应停止。
   public synchronized void stop() {
      //在这里停止测试
   }
}

接下来,在C:\> JUNIT_WORKSPACE中创建一个名为TestRunner3.java的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 Runner类。

C:\JUNIT_WORKSPACE>javac TestJunit3.java TestRunner3.java

现在运行Test Runner,它将运行在提供的Test Case类中定义的测试用例。

C:\JUNIT_WORKSPACE>java TestRunner3

验证输出。

true

TestSuite 类

以下是 org.junit.TestSuite类的声明:

 Object 

TestSuite是测试的组合。它运行测试用例的集合。 TestSuite 类的一些重要方法如下-

Sr.No.Methods & Remark
1

void addTest(Test test)

向套件添加测试。

2

void addTestSuite(Class<? extends TestCase> testClass)

将测试从给定的类添加到套件中。

3

int countTestCases()

计算该测试将要运行的测试用例的数量。

无涯教程网

链接:https://www.learnfk.comhttps://www.learnfk.com/junit/junit-api.html

来源:LearnFk无涯教程网

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的Java类文件,以创建测试套件。

import junit.framework.*;

public class JunitTestSuite {
   public static void main(String[] a) {
      //在套件中添加测试
      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编译测试套件类。

C:\JUNIT_WORKSPACE>javac JunitTestSuite.java 

现在运行测试套件。

C:\JUNIT_WORKSPACE>java JunitTestSuite

验证输出。

No of Test Case=1
Test Case Name=testAdd
Updated Test Case Name=testNewAdd
Number of test cases=3

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

如何做好一场技术演讲 -〔极客时间〕

Nginx核心知识150讲 -〔陶辉〕

DevOps实战笔记 -〔石雪峰〕

Electron开发实战 -〔邓耀龙〕

后端存储实战课 -〔李玥〕

OAuth 2.0实战课 -〔王新栋〕

Django快速开发实战 -〔吕召刚〕

超级访谈:对话张雪峰 -〔张雪峰〕

徐昊 · TDD项目实战70讲 -〔徐昊〕

好记忆不如烂笔头。留下您的足迹吧 :)