- 浏览: 242341 次
- 性别:
- 来自: 北京
最新评论
-
MCLoginandPwd:
分享一款可视化的工具来生成,拖拽控件,选择数据源就生成了htt ...
使用Mybatis Generator自动生成Mybatis相关代码 -
zxt1985:
我的博客里有下载链接
使用google-diff-match-patch比较文件 -
astarring:
XML配置的方式非常灵活,不过对于新手来说有点困难。我专门写了 ...
使用Mybatis Generator自动生成Mybatis相关代码 -
astarring:
XML配置的方式非常灵活,不过对于新手来说有点困难。我专门写了 ...
使用Mybatis Generator自动生成Mybatis相关代码 -
hw910206:
...
使用Mockito进行单元测试【1】——mock and verify
文章列表
一篇中介绍了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加入 ...