- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验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(TestCa
您可能关注的文档
- 2.3 系统管理与应用.ppt
- 2.3电子商务的应用框架.ppt
- 3-2内部存储器.ppt
- 3G无线宽带连接方法教程.doc
- 4 清华TWIMS.ppt
- 05 FTP服务器的组建与.ppt
- 06.HTTP客户端应用开发.ppt
- 06第六讲 JSP基础.ppt
- 6网站策划与制作.ppt
- 32环形输送线实验台综合实验.doc
- 2022年川南幼儿师范高等专科学校招聘笔试真题及完整答案详解1套.docx
- 2022年浙江科技学院招聘笔试真题及参考答案详解1套.docx
- 2022年山西省财政税务专科学校招聘笔试真题参考答案详解.docx
- 2025年上海市上海市黄浦区发展和财政局招聘编外人员考前自测高频考点模拟试题及答案详解1套.docx
- 2025年云南省思茅市江城县人事局事业单位工作人员公开招聘考前自测高频考点模拟试题附答案详解.docx
- 2025年云南省昭通市昭阳区文化服务中心招考工作人员考前自测高频考点模拟试题及答案详解1套.docx
- 2025年云南省怒江州泸水县自然资源局招聘考前自测高频考点模拟试题含答案详解.docx
- 2025年云南省丽江市华坪县不动产登记服务中心招聘考前自测高频考点模拟试题及答案详解1套.docx
- 2025年云南省大理州洱源县街道办事处招聘公益岗10人考前自测高频考点模拟试题含答案详解.docx
- 2025年内蒙古自治区包头市达茂联合旗审计局招聘考前自测高频考点模拟试题及答案详解1套.docx
文档评论(0)