270
社区成员
发帖
与我相关
我的任务
分享
take bottle 操作实现方式修改
take bottle操作作为 bottle 的一个属性处理,即在 bottle 里面添加 iftake 属性Adv 里面添加 bottletakes 列表,通过列表删改表示 bottle 的携带与放下“冒险者只能携带 10 个药水瓶。当冒险者药水背包容量满时,再携带药水时,会顶替掉当前携带的药水瓶中最先携带的一瓶(变为未携带状态)” bottletakes.size() ,同时可以直接通过 bottletakes.remove(0) 和 bottletakes.add(bottle) 实现顶替最先携带的操作指令处理模块以及 Advlist 位置调整
一开始把指令处理模块以及 Advlist 直接放在main类中
后来选择把这些功能移动到 AdvService 模块
调整原因及考虑:
将指令处理模块及 Advlist 从 main 类中迁移至 AdvService 模块,主要是为了遵循单一职责原则,避免 main 类承担过多功能,导致代码臃肿、难以维护。
功能集中在一个类中会增加测试复杂度,难以进行单元测试和模拟。通过分离至 AdvService,可以更清晰地划分职责,便于编写测试用例,提升代码质量和可测试性。
优点
JUnit 能够帮助我独立检查各个功能的正确性JUnit 帮助我简单判断功能是否成功添加以及运行,同时通过运行已有的测试集,可以快速判断新代码是否破坏了原有功能。JUnit 偶尔也能帮助我发现写代码的时候某些逻辑错误,比如我在下级援助上级的时候没有判断法术类型,可能会使用攻击法术“援助”上级,我在写 JUnit 就发现了。不足之处
JUnit 的使用仍存在一些不足之处:JUnit 只能判断功能的简单实现,由于无法构思出全方位的测试样例,使用 JUnit 一般无法帮我 debug。