计算机junit测试类,[计算机]JUnit单元测试基础基础实验.doc

[计算机]JUnit单元测试基础基础实验

实验1:JUnit单元测试基础

董瑞志

常熟理工学院软件工程系

实验目的

理解手工编写单元测试的基本方法;

编写简单的基于JUnit的单元测试用例;

深入掌握JUnit的核心类、JUnit生命周期。

课时安排

8课时

实验内容

JUnit初步

单元测试可以描述为“确保方法接收预期范围内的输入,并且对每个测试输入返回预期的结果。”单元测试是独立的一个工作单元(一个工作单元是一项任务,它不依赖于其他任何任务的完成)。在Java应用程序中,“独立的一个动作单元”常常指的是一个方法。

编写Calculator类及其手工测试类TestCalculatorManual

图1:手工测试Calculator

单元测试的一条准则是“若程序的某项功能没有经过测试,那么该功能基本等于不存在”。这里的add方法是Calculator的核心功能之一,这里我们先手工编写测试类TestCalculatorManual。

TestCalculatorManual的设计优化

也许你想为Calculator添加其他方法如subtract或multiply,就需要对TestCalculatorOne进行模块化的优化:

图2:优化手工测试的测试脚本

用JUnit进行单元测试

(1)JUnit有很多功能可以简化测试用例的编写和运行,我们编写Test Case—TestCalculatorWithJUnit如下。

图3:使用JUnit设计测试脚本

在Calculator类中添加subtract(), multiply(),divide()后,如何编写手工测试用例和基于JUnit框架的测试用例应该如何编写?

(2)使用默认的TestSuite, 显式调用Junit TestRunner

图4:显式调用Junit TestRunner

/*

* 调用由TestRunner自动创建的TestSuite对象

* 默认的TestSuite对象将扫描测试类,找出所有以test开头的方法,

* 为每一个testXXX方法都创建一个TestCase实例。

* 要调用的方法的名称会传给TestCase的构造函数,

* 这样每个实例就拥有了一个独一无二的标示。

*/

public static TestSuite suite(){

return new TestSuite(TestCalculatorWithJunit.class);

}

public static void main(String[] args) {

//junit.textui.TestRunner.run(TestCalculatorWithJunit.class);

junit.swingui.TestRunner.run(TestCalculatorWithJunit.class);

}

(3)创建TestAll

缺省的TestSuite设计目的在于让测试人员可以轻松应对简单的测试情形。但是当要组合多个Suite,把它作为主Suite的一部分,特别是这些suite来自不同的包;或者要运行多个Suite、在一个Suite中选一些测试来执行……等情况下,这就需要创建自己的suite对象。

Junit Framework中,Test接口如下:

public interface Test {

/**

* Counts the number of test cases that will be run by this test.

*/

public abstract int countTestCases();

/**

* Runs a test and collects its result in a TestResult instance.

*/

public abstract void run(TestResult result);

}

而TestSuite的addTest():

public void addTest(Test test) {

fTests.addElement(test);

}

即可以为TestSuite添加TestSuite也可以添加TestCase,这就为创建特殊的suite或者组合出TestAll创造了方便。

通常情况下,TestAll仅仅包括一个静态的suite(),该方法会注册应用程序需要定期执行的所有Test对象(包括TestCase和TestSuite)。TestAll的suite()方法细节如下:

public static Test suite(){

TestSuite suite=new TestSuite("All tests will be executed");

suite.addTestSuite(Test

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值