刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

阅读下列说明,回答问题1至问题5,将解答写在答题纸的对应栏内。
【说明】
图4-1是银行卡应用的部分类图,图中属性和操作前的“+”和“-”分别表示公有成员和私有成员。银行卡Account有两种类型,借记卡SavingAccount和信用卡CreditAccount 。

图4-1银行卡应用的部分类图

(1)借记卡和信用卡都有卡号account Number和余额balance两个属性。借记卡的余额是正常余额,信用卡的余额是目前未还的金额,如果没有未还的金额,则为0;有开户set Up、取款withdraw、查询余额get Balance和销户close四个方法。借记卡取钱时,要求取钱金额不能超过余额;而信用卡取钱金额不能超过信用额度,因此需要在子类中实现该方法。
(2)借记卡可以存钱deposit。
(3)信用卡有信用额度creditLimit属性,可以查询信用额度getCreditLimit、修改信用额度updateCreditLimit和还款retumCredit。现拟采用面向对象的方法进行测试。
问题:4.1   (3分)
面向对象单元测试的主要对象是什么? 
问题:4.2   (4分)
在继承关系上,若某方法在测试父类时已经测试过,那么在什么情况下在子类中也需要测试? 
问题:4.3   (4分)
要测试方法deposit()时,还需要调用什么方法?给出测试序列。 
问题:4.4   (6分)
方法withdraw在基类Account中定义,但在两个子类中有不同的实现。这是面向对象的什么机制?这种情况在测试时如何进行? 
问题:4.5   (3分)
给出类SavingAccount的最小测试序列。

使用微信搜索喵呜刷题,轻松应对考试!

答案:

4.1
是针对程序的函数、过程或完成某以特定功能的程序块。

4.2
1、继承类的成员函数在子类中做了改动
2、成员函数调用了改动过的成员函数的部分

4.3
getBalance()
先测试getBalance()再测试deposit( )

4.4
多态。
只需要在原有的测试分析和基础上增加对测试用例中输入数据的类型的考虑;先测试基类,然后再分别依据输入数据设计不同的测试用例。

4.5
先测试Account类,然后测试SavingAccount类。

解析:

问题4.1的答案是面向对象单元测试的主要对象是类中的方法和操作。这是因为单元测试中主要针对程序的最小可测试单元进行测试,而在面向对象编程中,类和其中的方法、操作是基本的可测试单元。

问题4.2的答案是在继承关系上,如果子类中修改了从父类继承来的方法或者该方法在子类中调用了新的方法或修改了已有的方法,那么在测试父类时已经测试过的方法在子类中也需要进行测试,以确保子类的实现没有错误。

问题4.3的答案是测试deposit()方法时,还需要调用getBalance()方法。因为存款操作需要知道账户的当前余额,以确保存款后余额正确。因此,测试序列为先测试getBalance(),确认账户的余额信息能够正确获取,然后测试deposit(),验证存款功能是否正常。

问题4.4的答案是方法withdraw在基类Account中定义,但在两个子类中有不同的实现,这是多态机制。在测试时,需要分别测试基类Account和两个子类中的withdraw方法,并根据不同类型的账户设计不同的测试用例。对于基类,测试通用的逻辑和正确性;对于子类,测试其特有的业务规则和逻辑处理。

问题4.5的答案是对类SavingAccount的最小测试序列是先测试其父类Account的相关方法,如accountNumber、balance、setUp、close等,以确保继承的功能正常。然后针对SavingAccount类特有的方法进行测试,如deposit方法,验证存款功能在SavingAccount类中的实现是否正确。

创作类型:
原创

本文链接:阅读下列说明,回答问题1至问题5,将解答写在答题纸的对应栏内。【说明】图4-1是银行卡应用的部分类图

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share