spring-test单元测试(四)-后记

目前我们已经对如何利用Spring Test组件,测试struts2的action请求,spring mvc的web请求,单个文件的测试都做了说明。这中间我们还使用了两种模拟对象的框架。EasyMock和Mockito。

我们在来说下什么是Mock测试?

Mock 最大的功能是帮你把单元测试的耦合分解开,如果你的代码对另一个类或者接口有依赖,它能够帮你模拟这些依赖,并帮你验证所调用的依赖的行为。

比如,下面这个依赖


当我们需要测试A类的时候,如果B和C不可用,或者是依赖他们需要涉及更多的资源加载及处理,如果没有mock我们必须全部把他们加载进来(当然你可以自己写stub,不过这个就显得麻烦了)。那么
有了mock之后呢,就会像下面这样

使用Mock测试的前提条件
那就是要面向超类型编程
使用一个接口来描述这个对象 在产品代码中实现这个接口 在测试代码中实现这个接口 在被测试代码中只是通过接口来引用对象,所以它不知道这个引用的对象是真实对象,还是 Mock 对象。

Java Mock测试方法
现在有Mockito ,Jmock,EasyMock等,个人推荐使用Mockito。

Mockito的特性
大部分java mock的框架都是 expect-run-verify方式,即 期望-运行-验证的方式。 而 Mockito 则使用更简单,更直观的方法:在执行后的互动中提问。

其实目前我们无论使用EasyMock还是Mockito都不能mock静态方法和私有方法,如果需要模拟这两种方法的行为可以采用powerMock和mockito模拟静态方法和私有方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值