Carshop类addBuyer()公开方法实现排查 测试无法正常运行
代码测试无法运行的问题排查
可逐一核对以下会导致测试中断、结果不符合预期的具体问题:
- 缺失必要的类导入语句
代码中使用Map、HashMap类型时未引入对应包,会直接触发编译报错,无法启动测试。需要补充的导入语句为:import java.util.Map; import java.util.HashMap; Buyer类构造方法与调用逻辑不匹配
当前addBuyer方法中执行了new Buyer(aName, anAddress),这要求Buyer类必须存在**公开的、接收两个字符串参数(顺序为买家姓名、买家地址)**的构造方法。存在以下任意一种情况都会直接导致编译失败、测试中断:Buyer类没有定义双参构造,仅保留默认的无参构造- 双参构造的参数顺序和调用顺序不一致(比如构造定义为
Buyer(String anAddress, String aName)) Buyer类的访问权限不是公开类型,Carshop无法正常实例化该对象
- 业务实现逻辑与测试预期不匹配
当前addBuyer方法未做任何前置校验,仅直接执行Map的put操作,很容易和测试用例的预期逻辑产生偏差:- 当传入重复的车辆注册码
aReg时,HashMap会直接覆盖原有的买家记录,如果测试用例预期重复注册码需要抛出异常、保留原有记录,当前实现的行为完全不符合要求 - 没有对入参合法性做判断,如果测试用例覆盖了入参为
null、空字符串的边界场景,当前代码会直接将非法值存入Map,不符合参数校验的规则要求
- 当传入重复的车辆注册码
内容的提问来源于stack exchange,提问作者lilly_brown027
相关产品推荐
相关产品推荐

