mockito

Mockito 简明教程

耗尽温柔 提交于 2020-10-07 04:00:47
什么是 Mock 测试 Mock 测试就是在测试过程中,对于某些不容易构造(如 HttpServletRequest 必须在Servlet 容器中才能构造出来)或者不容易获取比较复杂的对象(如 JDBC 中的ResultSet 对象),用一个虚拟的对象(Mock 对象)来创建以便测试的测试方法。 Mock 最大的功能是帮你把单元测试的耦合分解开,如果你的代码对另一个类或者接口有依赖,它能够帮你模拟这些依赖,并帮你验证所调用的依赖的行为。 比如一段代码有这样的依赖: 当我们需要测试A类的时候,如果没有 Mock,则我们需要把整个依赖树都构建出来,而使用 Mock 的话就可以将结构分解开,像下面这样: Mock 对象使用范畴 真实对象具有不可确定的行为,产生不可预测的效果(如:股票行情,天气预报) : 真实对象很难被创建的 真实对象的某些行为很难被触发 真实对象实际上还不存在的(和其他开发小组或者和新的硬件打交道)等等 使用 Mock 对象测试的关键步骤 使用一个接口来描述这个对象 在产品代码中实现这个接口 在测试代码中实现这个接口 在被测试代码中只是通过接口来引用对象,所以它不知道这个引用的对象是真实对象,还是 Mock 对象。 Mock 与 Stub 的区别 Mock 不是 Stub,两者是有区别的: 前者被称为 mockist TDD,而后者一般称为 classic TDD ;

Mockito 简明教程

前提是你 提交于 2020-10-06 11:47:52
什么是 Mock 测试 Mock 测试就是在测试过程中,对于某些不容易构造(如 HttpServletRequest 必须在Servlet 容器中才能构造出来)或者不容易获取比较复杂的对象(如 JDBC 中的ResultSet 对象),用一个虚拟的对象(Mock 对象)来创建以便测试的测试方法。 Mock 最大的功能是帮你把单元测试的耦合分解开,如果你的代码对另一个类或者接口有依赖,它能够帮你模拟这些依赖,并帮你验证所调用的依赖的行为。 比如一段代码有这样的依赖: 当我们需要测试A类的时候,如果没有 Mock,则我们需要把整个依赖树都构建出来,而使用 Mock 的话就可以将结构分解开,像下面这样: Mock 对象使用范畴 真实对象具有不可确定的行为,产生不可预测的效果(如:股票行情,天气预报) : 真实对象很难被创建的 真实对象的某些行为很难被触发 真实对象实际上还不存在的(和其他开发小组或者和新的硬件打交道)等等 使用 Mock 对象测试的关键步骤 使用一个接口来描述这个对象 在产品代码中实现这个接口 在测试代码中实现这个接口 在被测试代码中只是通过接口来引用对象,所以它不知道这个引用的对象是真实对象,还是 Mock 对象。 Mock 与 Stub 的区别 Mock 不是 Stub,两者是有区别的: 前者被称为 mockist TDD,而后者一般称为 classic TDD ;

Mockito使用总结

混江龙づ霸主 提交于 2020-10-04 05:46:57
Mockito介绍 Mockito就是一个优秀的用于单元测试的mock框架。在软件开发中提及”mock”,通常理解为模拟对象。所以Mockito就是为了模拟对象,然后进行解耦合测试。 Mockito可以让你用优雅,简洁的接口写出漂亮的单元测试。Mockito可以让单元测试易于可读,产生简洁的校验错误。 类之间是存在相互依赖的 如果我们想对类A进行单元测试,我们会发现它依赖B和C,而B又依赖D。此时如果对A进行测试就必须等B、C、D都开发完后才能测试,A测试正确与否也跟它依赖的类息息相关,但是使用Mockito后就可以剪除依赖,关注于被测试的类本身逻辑,完成测试。 为什么要用Mockito 剪除外部依赖,提升代码质量 团队并行开发,提高开发速度 为无法访问的资源编写测试 集成Mockito的基本步骤 标记被Mock的类或者对象,生成代理对象 通过Mockito API定制代理对象的行为 调用代理对象的方法,获得预先设计的结果 模拟对象的三种方式 >> 使用MockitoAnnotations模拟对象 >> 使用MockitoJUnitRunner模拟对象 >> 使用MockitoRule模拟对象 @Spy和@Mock是有区别的 验证行为 Mockito. verify(T mock, VerificationMode mode) Mockito.times() Mockito