阅读下列说明,回答问题,将解答写在答题纸的对应栏内。 某汽车维修公司的工时计算模块每天定时根据系统登记的维修信息统计维修工的工时工资。维修工分为学徒、普通维修工和高级维修工三种,三种维修工有不同的时薪标准。 图4一1是该模块的类图,图中属性和操作前的“+”

admin2021-03-19  37

问题 阅读下列说明,回答问题,将解答写在答题纸的对应栏内。
某汽车维修公司的工时计算模块每天定时根据系统登记的维修信息统计维修工的工时工资。维修工分为学徒、普通维修工和高级维修工三种,三种维修工有不同的时薪标准。
图4一1是该模块的类图,图中属性和操作前的“+”  “#”和“-”分别表示公有成员、保护成员和私有成员。

其中:
(1)类Engineer表示普通维修工。
(2)类studentEngineer和seniorEngineer都重新实现了类Engineer的方法calReward()。
(3)方法calReward()根据每个维修工每天的工时数(workTime)、时薪(hourSalary)来计算当天的工时工资。
(4)方法getReward()调用方法calReward()获取工时工资并打印显示。
(5)类System中的方法statReward()首先调用了该类的方法load(),获取本系统工程师列表,然后调用了类Engineer中的方法calReward()。
现拟采用面向对象的方法进行测试。
类seniorEngineer中的方法ealReward0和类studentEngineer中的方法getReward()是否需要重新测试?

选项

答案calReward()需耍。 getReward()需要。

解析 本问题考查面向对象的单元测试。
对父类中已经测试过的成员函数,有两种情况需要在子类中重新测试:继承的成员函数在子类中做了改动;成员函数调用了改动过的成员函数的部分。题目中,类seniorEngineer中的方法calReward()重新实现了父类的calReward0方法,需要重新测试。类studentEngineer中的方法getReward()虽没有重新实现,但是调用了重新实现的calReward()方法,所以需要重新测试。
转载请注明原文地址:https://kaotiyun.com/show/lzPZ777K
0

最新回复(0)