java junit api_JUnit - API

这篇博客详细介绍了JUnit测试框架中的重要API,包括Assert类用于断言的方法,如assertEquals、assertFalse等;TestCase类,提供了如setUp、tearDown等固定格式的测试方法;TestResult类,用于收集执行测试案例的结果;以及TestSuite类,作为测试的集合。通过示例代码展示了如何使用这些API进行单元测试,并演示了如何运行和查看测试结果。
摘要由CSDN通过智能技术生成

JUnit - API

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

voidassertEquals(booleanexpected,booleanactual)检查两个变量或者等式是否平衡

2

voidassertFalse(booleancondition)检查条件是假的

3

voidassertNotNull(Objectobject)检查对象不是空的

4

voidassertNull(Objectobject)检查对象是空的

5

voidassertTrue(booleancondition)检查条件为真

6

voidfail()在没有报告的情况下使测试不通过

下面让我们在例子中来测试一下上面提到的一些方法。在 C:\ > JUNIT_WORKSPACE 目录下创建一个名为 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 的类来执行测试案例。

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

intcountTestCases()为被run(TestResultresult)执行的测试案例计数

2

TestResultcreateResult()创建一个默认的TestResult对象

3

StringgetName()获取TestCase的名称

4

TestResultrun()一个运行这个测试的方便的方法,收集由TestResult对象产生的结果

5

voidrun(TestResultresult)在TestResult中运行测试案例并收集结果

6

voidsetName(Stringname)设置TestCase的名称

7

voidsetUp()创建固定装置,例如,打开一个网络连接

8

voidtearDown()拆除固定装置,例如,关闭一个网络连接

9

StringtoString()返回测试案例的一个字符串表示

我们在例子中尝试一下上文提到的方法。在 C:\ > JUNIT_WORKSPACE 路径下创建一个名为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 的类来执行测试案例。

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

voidaddError(Testtest,Throwablet)在错误列表中加入一个错误

2

voidaddFailure(Testtest,AssertionFailedErrort)在失败列表中加入一个失败

3

voidendTest(Testtest)显示测试被编译的这个结果

4

interrorCount()获取被检测出错误的数量

5

Enumerationerrors()返回错误的详细信息

6

intfailureCount()获取被检测出的失败的数量

7

voidrun(TestCasetest)运行TestCase

8

intintrunCount()获得运行测试的数量

9

voidstartTest(Testtest)声明一个测试即将开始

10

voidstop()标明测试必须停止

在 C:\ > JUNIT_WORKSPACE 路径下创建一个名为 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 的类来执行测试案例。

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

voidaddTest(Testtest)在套中加入测试。

2

voidaddTestSuite(Class<?extendsTestCase>testClass)将已经给定的类中的测试加到套中。

3

intcountTestCases()对这个测试即将运行的测试案例进行计数。

4

StringgetName()返回套的名称。

5

voidrun(TestResultresult)在TestResult中运行测试并收集结果。

6

voidsetName(Stringname)设置套的名称。

7

TesttestAt(intindex)在给定的目录中返回测试。

8

inttestCount()返回套中测试的数量。

9

staticTestwarning(Stringmessage)返回会失败的测试并且记录警告信息。

在 C:\ > JUNIT_WORKSPACE 路径下创建一个名为 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值