随笔-55  评论-208  文章-0  trackbacks-0
记录点滴经验,汇聚知识汪洋

1、单元测试时对测试目标的明确。
最近对单元测试时明确测试目标有了新的想法,就是在对目标类进行测试时一定要明确目标类的作用究竟是什么。
比如说对于一个5层结构的系统来说:数据库,DAO,BL,control,JSP
其中数据库和JSP的单元测试代价是比较高的,所以不考虑测试。
DAO的目标是从数据库获取数据,所以可以使用内存数据库或者真实数据库等方法直接进行测试,这点通常没有争议
BL层的目标是对业务逻辑的封装,这个层的测试通常是比较有争议的,要明确它仅仅是调用DAO并进行业务封装,所以只需要对它以来的DAO进行模拟,然后测试是否正确封装就可以了。
control层的目标是根据请求进行跳转,所以这个层的测试方法是,模拟请求对象和BL,然后检查是否正确的调用BL以及正确的跳转。

2、当不好倒转依赖时进行依赖模拟的小技巧。
情景环境:我的BL层在对DAO层的依赖关系上没有使用比较灵活的依赖反转方法(这个是历史原因^_^),这时候就对我在测试时对DAO的模拟上造成了一定的困扰。
解决办法:但是所谓办法总是能像出来的吗,我把BL调用到DAO的地方封装成一个统一的方法,然后在BL中定义一个Map,这个Map是可以从外部进行set的,然后在统一调用DAO的方法中判断,如过map中有设置就获取map的,如果map中没有就获取原来紧密耦合的DAO,这样就可以在测试的时候从外部注入模拟的DAO了。
posted on 2008-03-05 12:11 rocket 阅读(903) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: