序
作为一个开发人员,也需要具备一些测试方面的知识,对测试驱动开发以及提高工作效率都很有帮助。
很后悔以前没有好好看《Junit Recipes》这本书,亡羊补牢,现在开始积累Junit的一些知识,这是第一篇。
正文
在测试中,Mock Object(伪装对象)主要有两种功能,一种是像演员一样去模拟一个类,另一个功能则是像裁判一样裁决测试对这个模拟类进行的操作是否正确。
作为演员,它常被用来模拟在测试中难以设置或者要消耗较多时间来创建的对象。一个典型的例子是数据库连接对象。如果在每次开始测试开始时都要初始化数据库连接,会大大降低测试的速度,同时还需要安装数据库引擎并设置测试数据。如果我们能模拟数据库并返回查询的数据,那么波们不仅可以顺利通过测试,还能填入假数据来观察其反馈。我们可以模拟数据库宕机或其他极端情况,而不是真的去创建一个烂数据库。换句话说,我们能够由此取得对测试环境的控制权。</