您的位置:首页 > 职场人生

关于单元测试的一些基本问题

2010-10-11 20:09 218 查看
       在单元测试时,由于模块通常与其他模块存在耦合,因此往往需要将测试将耦合的模块也一起测试了。很多时候,这是难以(甚至无法)完成的。因此,如果我们能将被测试模块隔离,使其完全不依赖于其他模块的具体实现,这样,我们就能做到测试先行,先测试哪个类,就先实现哪个模块,而不管与之耦合的模块是否已经实现。

      模拟对象(mock object)就是为此需要而诞生的。它通过JAVA反射机制,在运行时动态地创建模拟对象。在测试代码中,我们可以验证这些模拟对象是否被正确地调用了,也可以在特定的情况下,让其返回特定的假想值。而一旦有了这些模拟对象提供的服务,被测试模块就可以将模拟对象作为其他与之联系的真实模块的替身,从而轻松地搭建起一个很完美的测试环境。
一般项目中,我们使用JUnit作为整体框架,用JMock作为辅助,这两个工具的使用在网上有大量资料(不过JMock的好像不是很多)。我个人觉得比较好的两个:JUnit:http://www.ibm.com/developerworks/cn/java/j-lo-junit4/
JMock:http://book.51cto.com/art/200806/78343.htm
英文好的朋友可以直接参考JMock Cookbook,里面有关于JMock的几乎所有文档,而且非常详细。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息