`
qiuguo0205
  • 浏览: 242457 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
一篇中介绍了Mockito的基本信息,现在接着介绍Mockito强大的stub功能   2. Mockito使用实例 5. 对连续的调用进行不同的返回 (iterator-style stubbing) 还记得在实例2中说道当我们连续两次为同一个方法使用stub的时候,他只会使用最新的一次。但是在某一个方法中我们确实有很多的调用怎么办呢?mockito当然想到这一点了:     when(mock.someMethod("some arg")) .thenThrow(new RuntimeException()) .thenReturn(" ...
1. 为什么使用Mockito来进行单元测试?   回答这个问题需要回答两个方面,第一个是为什么使用mock?mock其实是一种工具的简称,他最大的功能是帮你把单元测试的耦合分解开,如果你的代码对另一个类或者接口有依赖,它能够帮你模拟这些依赖,并帮你验证所调用的依赖的行为。   比如一段代码有这样的依赖:     当我们需要测试A类的时候,如果没有mock,则我们需要把整个依赖树都构建出来,而使用mock的话就可以将结构分解开,像下面这样:   还有一个问题是mock工具那么多,为什么我们要用mockito呢?原因很简单:他非常好用! 他使用执行后验证的模型,语法更简 ...
要对文本文件的进行比较的时候,可以考虑使用google-diff-match-patch,它可以进行比较、匹配和生成补丁的操作,这里将展示一个简单文本比较的例子。   首先我们必须接定好文本比较后的输出。假设我们有两段文本“123456789” ...
当需要对一个大文件计算MD5校验和时,JDK提供的方法速度是非常快的,甚至比操作系统提供的本地工具还要快。详情可以查看这个链接 http://www.twmacinta.com/myjava/fast_md5.php   这里有一个简单的示例,来自 http://www.javalobby.org/java/forums/t84420.html: public static void main(String[] args) throws NoSuchAlgorithmException, FileNotFoundException { MessageDigest digest = Me ...
下面是一段很简单的groovy显示某oracle数据库用户下所有表名的代码: import groovy.sql.*; db = Sql.newInstance( 'jdbc:oracle:thin:@localhost:1521:orcl', 'abc', 'abc', 'oracle.jdbc.driver.OracleDriver') tablename = 'tab' db.eachRow ("select tname from $tablename", {println it})   但是实际使用的时候会爆出这样的错误: 201 ...
本文将简要介绍怎样利用Spring 整合 Mybatis Generator自动生成的代码:   关于Mybatis Generator自动生成怎样自动生成代码,请参考这篇文章:使用Mybatis Generator自动生成Mybatis相关代码 ,本篇文章将接着上一篇文章的例子继续。 一、准备环境 1. 下载jar包:首先要在Mybatis网站中下载相应的 jar包mybatis-spring-1.0.0-RC2-bundle.zip http://code.google.com/p/mybatis/downloads/list?can=3&q=Pr ...
本文将简要介绍怎样利用Mybatis Generator自动生成Mybatis的相关代码:一、构建一个环境: 1. 首先创建一个表:   CREATE TABLE pet (name VARCHAR(20), owner VARCHAR(20), species VARCHAR(20), sex CHAR(1), birth DATE, death DATE);   2. 然后注入数据 insert into pet values('Fluffy', 'Harold', 'cat', 'f', '1993-02-04', null); insert into pet value ...
在一个应用中,需要将 java.util.Properties 作为参数传入 一个类中,并读出其中的一个参数   package cn.com.test.spring.properties; import java.util.Properties; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class PropertyTest { p ...
在学习使用Hudson进行持续集成时,总是报这样的错误: can't open C:\Program Files\Java\jdk1.5.0\lib\tzmappings.   Started by user anonymous Updating svn://127.0.0.1/test/quickstart/trunk At revision 886 no change for svn://127.0.0.1/test/quickstart/trunk since the previous build Parsing POMs [trunk] $ java -cp " ...
除了自己实现java文本处理properties配置资源文件这个坏习惯之外,使用JDK自带类库读取Properties文件的方法主要有三种 ClassLoader.getResourceAsStream ("some/pkg/resource.properties"); Class.getResourceAsStream ("/some/pkg/resource.properties"); ResourceBundle.getBundle ("some.pkg.resource");   下面使用示例分别讲解这 ...
Notice: 本文作者只是设计模式、Guice和依赖注入的初学者,所以本文不会指出使用Guice的实现方法有什么好处,所写的代码未必是最佳实践,欢迎提出改进意见。 Guice 怎对不同的对象生命周期,提出了Scope的概念,具体见 http://code ...
Notice: 本文作者只是设计模式、Guice和依赖注入的初学者,所以本文不会指出使用Guice的实现方法有什么好处,所写的代码未必是最佳实践,欢迎提出改进意见。 Factory Method 模式 http://www.riabook.cn/doc/designpattern/FactoryMethod.htm 如果保持这个模式,需要创建一个表现依赖关系的模块类如下:   import com.google.inject.AbstractModule; public class EditorModule extends AbstractModule { @Over ...
Notice: 本文作者只是设计模式、Guice和依赖注入的初学者,所以本文不会指出使用Guice的实现方法有什么好处,所写的代码未必是最佳实践,欢迎提出改进意见。 Builder 模式 http://www.riabook.cn/doc/designpattern/BuilderPattern.htm 使用Guice实现的时候,可以只用bind方法来进行依赖关系的建立,但是这样对现有代码的改造太多。因此这里将使用Guice的另一个特性——Provider来进行Builder模式的改造。使用这种方法的时候,原示例中的代码除了Main类之外都不需要改动: 由于MazeDirector实例 ...
otice: 本文作者只是设计模式、Guice和依赖注入的初学者,所以本文不会指出使用Guice的实现方法有什么好处,所写的代码未必是最佳实践,欢迎提出改进意见。 Abstract Factory 模式 http://www.riabook.cn/doc/designpattern/AbstractFactory.htm 使用Guice实现的时候,可以将其中的MacWidgetFactory和WindowsWidgetFactory合并为一个WidgetFactory类:   public class WidgetFactory implements IWidgetFactory { ...
Notice: 本文作者只是设计模式、Guice和依赖注入的初学者,所以本文不会指出使用Guice的实现方法有什么好处,所写的代码未必是最佳实践,欢迎提出改进意见。 关于Guice所有的资料都可以在其项目主页[http://code.google.com/p/google-guice/ ]中找到,其中还包括一个精彩的演讲,由于演讲中是使用Guice取代工厂模式使用的,所以作者以一些工厂模式作为练习,实现了使用Guice的重构。   Guice 的使用方法在这里不详细介绍了,只要在其网站上下载guice-2.0.zip,解压后将guice-2.0.jar和aopalliance.jar加入 ...
Global site tag (gtag.js) - Google Analytics