Mock

1.mock 是什么

mock一词指效仿,模仿

在单元测试里,mock用来构造一个替身。

这个替身主要用于作为被测试类的依赖关系的替代

1.为什么要使用mock

因为在做单元测试的时候,我们要测试的方法会引用很多外部依赖的对象,比如(发送邮箱,网络通讯,记录Log)。而我们没办法控制这些外部依赖的对象

1.1相对于Junit的优势

Junit是单元测试框架,可以轻松完成关联关系少或者比较简单的类的单元测试。但对于关联到其他比较复杂的类或者对运行环境有要求的类的单元测试。模拟环境或者配置环境会非常耗时,实施单元测试比较困难

注:不是不能做,是模拟环境比较耗时

mock的优势

可以通过mock框架模拟一个对象的行为,从而隔离我们不关心的其他对象,使得测试变得简单

例如

service调用dao,既service依赖dao,我们可以通过mock dao来模拟真实的dao调用,从而能达到测试service 的目的

模拟对象(Mock Object)

可以取代真实对象的位置,用于测试一些与真实对象进行交互或依赖于真实对象的功能,模拟对象的背后目的就是创建一个轻量级的,可控制的对象来代替测试中需要的真实对象,模拟真实对象的行为和功能

参考

从百变怪Mockito到单元测试

results matching ""

    No results matching ""