单元测试的隔离框架
在单元测试的编写中,不可避免的会碰到对象的依赖。
这时为了完成测试功能
首先,需要先把下层的依赖类实现;其次,只能等待结果返回即使会很耗时;最后,此测试用例已不仅仅反映是该函数功能的正误(还包含了依赖对象的逻辑)。
而这些和待测逻辑无关,却需要花大量时间在上面
通过使用隔离框架(如Rhino Mocks)
引入 mock object(模拟对象)/stub object(桩对象)
其中的外部依赖
如文件系统,线程,内存和时间,不受人为控制的依赖对象
使用桩对象作为外部依赖的替代品,可人为控制
其中依赖对象的交互
典型的如Web服务,邮件服务等需要验证其交互的对象
使用模拟对象作为伪对象,可认为控制的依赖验证依赖对象的状态或交互
两者的区别是:桩对象不会使测试失败,而模拟对象会。见下面图例:
桩对象并不被验证
模拟对象则被验证



浙公网安备 33010602011771号