一些开发点滴[java]

本文围绕Java项目测试展开,提及Service间依赖导致单元测试无法直接调用的问题,可修改ServiceLocator设定mock类;对于new出的依赖对象,不建议mock,应先完成测试再使用;还谈到代码覆盖率,jtest可辅助生成测试代码和统计结果,强调该参数很有必要。

最近忙着做项目,折腾新电脑,玩game。。。今天补点作业

测试问题。
1. Service间相互有依赖,在单元测试时无法直接调用其它Service。
    修改ServiceLocator, 允许setService(name,mockService). 这样就可以在测试时临时设定service为匿名内部mock类。被测代码在调用ServiceLocator.getService(name)时就取得了mockService.

2. 相关依赖对象不是调用getService出来的,是new出来的。
    这种情况下可以用同名mock类覆盖原来的类定义,但是有两个缺点:1.mock类比较死板,不一定能适应不同测试。2.不能功能的代码混合在一个mock类里面,要依靠外部信息(环境等)才能测试,单元测试复杂化
    我的想法是new出来的依赖对象一般不复杂,不要mock,尽量先对它们测试完成,可用,然后直接使用。

3. 代码覆盖率
    这个考查参数很有趣,jtest可以帮助自动生成大部分测试代码,并且统计覆盖率结果(不知道怎样得到的)。100%覆盖率可以保证各部分代码都被执行到。想想以前很多运行bug都是没执行过的代码第一次执行造成的,所以强调这个参数还是很有必要的。不过。。。。可能要加班才能完成目标啊,太多测试代码了 :(

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值