Mockito是一个流行的Mocking框架。它使用起来简单,学习成本很低,而且具有非常简洁的API,测试代码的可读性很高。因此它十分受欢迎,用
户群越来越多,很多的开源的软件也选择了Mockito。要想了解更多有关Mockito的信息,请访问它的官方网
站:http://mockito.org/
在开始使用Mockito之前,先简单的了解一下Stub和Mock的区别。
Stub对象用来提供测试时所需要的测试数据,可以对各种交互设置相应的回应。例如我们可以设置方法调用的返回值等等。Mockito中
when(…).thenReturn(…)
这样的语法便是设置方法调用的返回值。另外也可以设置方法在何时调用会抛异常等。Mock对象用来验证测试中所依赖对象间的交互是否能够达到预期。
Mockito中用 verify(…).methodXxx(…) 语法来验证
methodXxx方法是否按照预期进行了调用。有关stub和mock的详细论述见,Martin Fowler文章《Mocks Aren't
Stub》http://martinfowler.com/articles/mocksArentStubs.html。在Mocking框架中所谓
的mock对象实际上是作为上述的stub和mock对象同时使用的。因为它既可以设置方法调用返回值,又可以验证方法的调用。
Mockito的获取
Jar包的获取
可以访问下面的链接来下载最新的Jar包,笔者使用的当前最新版为:1.8.5 http://code.google.com/p/mockito/downloads/list
Maven
如果项目是通过Maven管理的,需要在项目的Pom.xml中增加如下的依赖:
-
<dependencies>
-
<dependency>
-
<groupId>org.mockito</groupId>
-
<artifactId>mockito-all</artifactId>
-
<version>1.8
.
5
</version>
-
<scope>test</scope>
-
</dependency>
-
</dependencies>
Mocktio包的引入
在程序中可以import org.mockito.Mockito;然后调用它的static方法,或者import static org.mockito.Mockito.*;个人倾向于后者,因为这样可以更方便些。
一个简单的例子
-
import
static
org.junit.Assert.*;
-
import
static
org.mockito.Mockito.*;
-
import
java.util.Iterator;
-
import
org.junit.Test;
-
-
-
-
-
-
public
class
SimpleTest {
-
-
@Test
-
public
void
simpleTest(){
-
-
Iterator i=mock(Iterator.class
);
-
when(i.next()).thenReturn("Hello"
).thenReturn(
"World"
);
-
-
String result=i.next()+" "
+i.next();
-
-
verify(i, times(2
)).next();
-
-
assertEquals("Hello World"
, result);
-
}
-
}
在上面的例子中包含了Mockito的基本功能:
创建Mock对象
创建Mock对象的语法为,mock(class or interface)。例子中创建了Iterator接口的mock对象。
设置方法调用的预期返回
通过when(mock.someMethod()).thenReturn(value)
来设定mock对象某个方法调用时的返回值。例子中我们对Iterator接口的next()方法调用进行了预期设定,当调用next()方法时会返
回”Hello”,由于连续设定了返回值,因此当第二次调用时将返回”World”。
验证方法调用
接下来对mock对象的next()方法进行了一系列实际的调用。mock对象一旦建立便会自动记录自己的交互行为,所以我们可以有选择的对它的
交互行为进行验证。在Mockito中验证mock对象交互行为的方法是verify(mock).someMethod(…)。于是用此方法验证了
next()方法调用,因为调用了两次,所以在verify中我们指定了times参数(times的具体应用在后面会继续介绍)。最后assert返回
值是否和预期一样。
原文链接:http://javasee.iteye.com/blog/1000868
分享到:
相关推荐
赠送jar包:mockito-core-4.0.0.jar; 赠送原API文档:mockito-core-4.0.0-javadoc.jar; 赠送源代码:mockito-core-4.0.0-sources.jar; 赠送Maven依赖信息文件:mockito-core-4.0.0.pom; 包含翻译后的API文档:...
PowerMock是一个扩展了其它如EasyMock等mock框架的、功能更加强大的框架。PowerMock使用一个自定义类加载器和字节码操作来模拟静态方法,构造函数,final类和方法,私有方法,去除静态初始化器等等。...
赠送jar包:mockito-core-4.0.0.jar; 赠送原API文档:mockito-core-4.0.0-javadoc.jar; 赠送源代码:mockito-core-4.0.0-sources.jar; 赠送Maven依赖信息文件:mockito-core-4.0.0.pom; 包含翻译后的API文档:...
mockito-all-1.10.19.jar mockito-core-4.5.1.jar mockito-junit-jupiter-4.5.1.jar mockito-junit-jupiter-4.5.1-sources.jar
Mockito for spring Mockito for spring Mockito for spring Mockito for spring Mockito for spring Mockito for spring Mockito for spring Mockito for spring Mockito for spring Mockito for spring Mockito ...
内容概要:参考Mockito官方API文档,实践框架每个特性。 适合人群:Mockito入门人员以及想全面熟悉Mockito特性的人员,做到了开箱即用。 能学到什么:“Mockito 4.6.0 + Junit 5”的组合编程。 使用建议:使用前安装...
赠送jar包:mockito-core-2.15.0.jar; 赠送原API文档:mockito-core-2.15.0-javadoc.jar; 赠送源代码:mockito-core-2.15.0-sources.jar; 赠送Maven依赖信息文件:mockito-core-2.15.0.pom; 包含翻译后的API文档...
mockito-1.9.0.zip,免费下载,需要的拿去
Mockito is an open source testing framework for Java released under the MIT License. The framework allows the creation of test double objects (mock objects) in automated unit tests for the purpose of ...
赠送jar包:mockito-core-3.8.0.jar; 赠送原API文档:mockito-core-3.8.0-javadoc.jar; 赠送源代码:mockito-core-3.8.0-sources.jar; 赠送Maven依赖信息文件:mockito-core-3.8.0.pom; 包含翻译后的API文档:...
mockito junit 单元测试 mockito junit 单元测试
赠送jar包:mockito-core-3.8.0.jar; 赠送原API文档:mockito-core-3.8.0-javadoc.jar; 赠送源代码:mockito-core-3.8.0-sources.jar; 赠送Maven依赖信息文件:mockito-core-3.8.0.pom; 包含翻译后的API文档:...
关 于 Mockito 的 概 述
mockito-core-3.12.2
赠送jar包:powermock-api-mockito2-2.0.9.jar; 赠送原API文档:powermock-api-mockito2-2.0.9-javadoc.jar; 赠送源代码:powermock-api-mockito2-2.0.9-sources.jar; 赠送Maven依赖信息文件:powermock-api-...
赠送jar包:mockito-core-3.9.0.jar; 赠送原API文档:mockito-core-3.9.0-javadoc.jar; 赠送源代码:mockito-core-3.9.0-sources.jar; 赠送Maven依赖信息文件:mockito-core-3.9.0.pom; 包含翻译后的API文档:...
资源含有Junit4.12.jar和mockito的jar包以及mockito的文档
mockito-core-3.6.0.jarmockito-core-3.6.0.jar
赠送jar包:mockito-core-3.1.0.jar; 赠送原API文档:mockito-core-3.1.0-javadoc.jar; 赠送源代码:mockito-core-3.1.0-sources.jar; 赠送Maven依赖信息文件:mockito-core-3.1.0.pom; 包含翻译后的API文档:...
赠送jar包:mockito-core-2.15.0.jar; 赠送原API文档:mockito-core-2.15.0-javadoc.jar; 赠送源代码:mockito-core-2.15.0-sources.jar; 赠送Maven依赖信息文件:mockito-core-2.15.0.pom; 包含翻译后的API文档...