Java测试包Mockito

Java测试包Mockito

记录一些基本功能,Mockito主要是用于为测试提供Mock。

生成Mock,代替目标对象

List<String> list = mock(List.class);

目标对象方法的返回结果

我们要让mock对象的方法,按照我们的想法返回结果。使用when().then()语法定义。

when(list.get(anyInt())).then(new Answer<String>(){
    @Override
    public String answer(InvocationOnMock invocation)throws Throwable {
        Object[] args = invocation.getArguments();
        Integer num = (Integer)args[0];
        if( num>3 ){
            return "yes";
        } else {
            throw new RuntimeException();
        }
    }

});

当使用list.get方法时,如果参数是>3的,则返回yes

也可以使用如下语法:doAnswer().when()

doAnswer(new Answer<String>(){
    @Override
    public String answer(InvocationOnMock invocation)throws Throwable {
        Object[] args = invocation.getArguments();
        Integer num = (Integer)args[0];
        if( num>3 ){
            return "yes";
        } else {
            throw new RuntimeException();
        }
    }).when(list).get(anyInt());

验证调用次数和顺序

list.get(1);
list.get(4);
//是否先调用了一次list.get(1)
verify(list).get(1)
//是否调用了2次list.get()
verify(list,times(2)).get(anyInt())

Refenrece

http://www.iteye.com/topic/1130812

时间: 2024-08-03 18:54:44

Java测试包Mockito的相关文章

用Jython构建JUnit测试包

JUnit 测试框架被越来越多的开发小组所共同使用.归功于各种各样的测试装具模块,现在可以测试构成任何 Java 应用程序的几乎每一个组件.事实上,几乎整个二级市场似乎都是用围绕 Junit 建立的.包括 Cactus.jfcUnit.XMLUnit.DbUnit 和 HttpUnit 这样的装具模块都可以免费供开发人员用于测试应用程序.随着系统的复杂程度的增加,并且有这么多工具可供使用,没有什么理由不依靠单元测试. 不过,开发人员不仅仅是程序员.我们与用户交互以修复 bug 并确定需求.我们参

Java测试覆盖率工具----Cobertura,EclEmma

Cobertura 是一个与Junit集成的代码覆盖率测量工具 它是免费.开源的 它可以与Ant和Maven集成,也可以通过命令行调用 可以生成HTML或XML格式的报告 可以按照不同的标准对HTML结果进行排序 为每个类.包以及整个项目计算所覆盖的代码行与代码分支的百分比例 原创文章,版权所有,允许转载,标明出处:http://blog.csdn.net/wanghantong Eclipse插件地址: http://ecobertura.johoop.de/update/ (requires

java.util包学习笔记一

笔记 学习java2SDK 1.4.0 java.util里边有几个重要的接口,列在这里作为学习的总结: 1 java.util.Enumeration有两个方法hasMoreElements(),nextElement().使用方法如下://打印向量v的所有元素for(Enumeratin e = v.elements(); e.hasMoreElements();){ System.out.println(e.nextElement().toString());}这里注意要调用nextEle

如何使用Java测试网络连通性

概述 在网络编程中,有时我们需要判断两台机器之间的连通性,或者说是一台机器到另一台机器的网络可达性.在系统层面 的测试中,我们常常用 Ping 命令来做验证.尽管 Java 提供了比较丰富的网络编程类库(包括在应用层的基于 URL 的网 络资源读取,基于 TCP/IP 层的 Socket 编程,以及一些辅助的类库),但是没有直接提供类似 Ping 命令来测试网络连通 性的方法.本文将介绍如何通过 Java 已有的 API,编程实现各种场景下两台机器之间的网络可达性判断.在下面的章节中 ,我们会使

Java编程那些事儿74——java.lang包介绍

9.4 JDK API包名综述 在整个JDK API中,大约包含1.200个包,总体来看,包名第一个名称主要有三种:java.javax和org.其中以java开头的包名是JDK的基础语言包,以javax开头的属于JDK扩展包(其中x是extend的简写),而以org开头的则是第三方组织提供的功能包(org是organization的简写).而在JDK API中还包含了一些以com.sun开头的包名,这些是SUN公司提供的一些功能包,由于这些包中的类随着JDK版本的更改变化很大,不具备兼容性,所

通过HTTP加载Java资源包

使用资源包的另一个方法 请设想一下这种情况:您必须提供一个显示小部件,它能够从数据库中提取消息键(keys)和消息替代参数,在 Java 资源包中查找键,然后格式化消息并显示出来.惟一的问题是这个资源包位于 Web 应用程序中,而不是您的小部件所在的位置.事实上,Web 应用程序位于不同的服务器中. 这并不是 Java 资源包的典型使用情况,而可能是一场噩梦.您如何来实现这一点呢?为了不进行空泛的解释,本文包括了一个示例应用程序,供你下载运行.它将更轻松地向您演示并帮助您做到这点. 示例应用程序

通过Java.net包建立双向通讯

利用java.net包提供的网络能力.以有连接流通讯方式为例, 在服务器端的操作为一般为: ⑴ 创建一个ServerSocket对象,在指定端口监听客户端发来的请求. ⑵ 在接收到请求时accept()方法将返回一个Socket对象. ⑶ 用上述Socket对象创建输入.输出流对象. ⑷ 通过输入.输出流与客户交互. ⑸ 交互完毕,关闭输入.输出流与Socket. ⑹ 服务程序运行结束,关闭ServerSocket. 实现代码代码类如: try{ boolean flag=true; Socke

Java IO 包中的Decorator模式

JDK为程序员提供了大量的类库,而为了保持类库的可重用性,可扩展性和灵活性,其中使用到了大量的设计模式,本文将介绍JDK的I/O包中使用到的Decorator模式,并运用此模式,实现一个新的输出流类. Decorator模式简介 Decorator模式又名包装器(Wrapper),它的主要用途在于给一个对象动态的添加一些额外的职责.与生成子类相比,它更具有灵活性. 有时候,我们需要为一个对象而不是整个类添加一些新的功能,比如,给一个文本区添加一个滚动条的功能.我们可以使用继承机制来实现这一功能,

在eclipse里如何导入java.awt包呢

问题描述 在eclipse里如何导入java.awt包呢 java.awt的包到底在哪里可以下载,并且我的eclipse汉化也汉化不了. 解决方案 import java.awt.*;