第一范文网 - 专业文章范例文档资料分享平台

E4 - JUnit单元测试(1)

来源:用户分享 时间:2026/8/26 22:26:41 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

3.JUnit单元测试的步骤

(1) 重载setUp(),封装测试环境初始化及测试数据准备; (2) 设计测试方法,以testXXX命名。

(3) 在测试方法中使用断言方法如assertEquals(),assertTrue()等。JUnit中断言方法

如表2所示。

(4) 设计测试套件,或使用缺省的测试套件,调用TestRunner执行测试脚本,生成

测试结果;

(5) 重载tearDown()析构测试环境,执行收尾动作

表2:断言方法

assertEquals(expected, actual)

assertEquals(message, expected, actual)

assertEquals(expected, actual, delta) - used on doubles or floats, where delta is the difference in precision

assertEquals(message, expected, actual, delta) - used on doubles or floats, where delta is the difference in precision assertFalse(condition)

assertFalse(message, condition) assertNotNull(object)

assertNotNull(message, object) assertNotSame(expected, actual)

assertNotSame(message, expected, actual) assertNull(object)

assertNull(message, object) assertSame(expected, actual)

assertSame(message, expected, actual) assertTrue(condition)

assertTrue(message, condition)

案例分析

1.三角形问题

设计类Triangle及其测试类TestTriangle,其类图如图6所示。Triangle中包含三个属性borderA, borderB, borderC,三遍取值都在(0,20]集合中的自然数;一个构造函数,isTriangle()判断三角形三边是否构成三角形,isType()判断在输入的三边形成三角形的情况下所形成的三角形的具体类型:等边三角形、等腰三角形还是不等边三角形。

图6:Triangle及其测试类

TestTriangle类定义如下:

(1) 重载setUp()方法,进行测试准备,封装测试的预期结果。 (2) 定义测试方法testIsTriangle()和testIsType() (3) 在测试方法中使用断言

(4) 定义suite()方法,使用缺省的TestSuite public static TestSuite suite(){ return new TestSuite(TestTriangle.class); }

(5) 通过缺省的TestSuite调用TestRunner生成测试结果。 //调用SWING UI或TEXT UI执行测试

//junit.textui.TestRunner.run(TestTriangle.class); junit.swingui.TestRunner.run(TestTriangle.class);

2.[作业]设计类NextDay,该类包含year, month, day三个属性,该类可以根据用户输入的year, month, day的值输出用户输入日期对应的下一天。设计NextDay的测试类TestNextDay对其中核心方法,综合使用等价类划分和健壮性测试方法设计测试用例执行单元测试。建议NextDay结构如图7所示。

图7:NextDay

问题3:给出NextDay的关键代码。

public class NextDay {

public int year; public int month; public int day;

public NextDay() {}

public boolean isLeapYear() { }

public boolean isFebruary() { }

public boolean isYearEnd() { }

public int getMonthMaxDays() {

if(month==12&&day==31) { }

return true; return false; } else { if(month==2) { }

return true; return false; } else {

if(year%4==0&&year0!=0||year@0==0) { }

return true; return false; } else {

} }

if(month==4||month==6||month==9||month==11 ) {

return 30; } else }

return 31;

if(year%4==0&&year0!=0||year@0==0) { }

return 29; return 28; } else {

if(month==1||month==3||month==5||month==7||month==8||month==10||month==12){

} else {

public String computeNextDay() { }

String nextday = new String(); if(isMonthEnd()) { }

return nextday;

day = 1; month += 1; day += 1;

} else {

问题4:采用等价类划分方法和边界值分析方法为次日问题设计测试用例。给出测试用例设计的详细过程及结果。要求把设计的测试用例整合到表格之中,并给出测试执行情况。 编号 测试对象 测试数据 测试过程 测试预期执行结果 2017/1/1 测试执行情况(Pass/Fail) Pass 1 computeNextDay computeNextDay 2016/12/31 assertEquals(expected, nextDay.computeNextDay()); 2 2016/2/29 assertEquals(expected, nextDay.computeNextDay()); 2016/3/1 Pass 3 getMonthMaxDays 2016/2/3 assertEquals(expected,nextDay.getMonthMaxDays()); 29 pass 问题5:

参考《JUnit In Action(第2版)》,谈谈你对JUnit测试框架的理解。

当你需要编写更多的TestCase的时候,你可以创建更多的TestCase对象。当你需要一次执行多个TestCase对象的时候,您可以创建一个TestSuite对象或使用缺省的TestSuite对象进行封装。为了执行TestSuite,需要使用TestRunner。通过TestRunner的执行生成TestResult对象。

(1)TestCase测试用例

用户定义的TestCase必须扩展junit.framework.TestCase类,它以testXXX方法的形式包含了一个或多个测试。一个测试用例把具有公共行为的测试归入一组。 (2)TestSuite测试套装

一个测试套装可以把多个测试用例或测试套装封装为一组 (3)TestRunner测试运行器

测试运行器用来运行测试套装,Junit提供良种典型的测试运行器: junit.swingui.TestRunner 和 junit.textui.TestRunner

实验报告

编制纸质实验报告,详细描述实验过程和实验体会;

搜索更多关于: E4 - JUnit单元测试(1) 的文档
E4 - JUnit单元测试(1).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c7l0i20yrit797950lpza3sk4u09qt500ff3_2.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top