`
文章列表
    前面的例子中,mock的对象都是基于interface,虽然说我们总是强调要面对接口编程,而不要面对实现,但是实际开发中不提取interface而直接使用class的场景非常之多。尤其是一些当前只有一个明确实现而看不到未来扩展的类,是否应该提取interface或者说是否应该现在就提取interface,总是存在争论。       这种情况下,我们就会面临主要测试对象依赖到一个具体类而不是interface的情况,easymock中通过class extension 来提供对class mocking的支持。   1. class mocking的使用       easym ...
      关于easymock的典型使用方式,在easymock的官网文档中,有非常详尽的讲解,文档地址为 http://easymock.org/EasyMock3_0_Documentation.html,文档的开头一部分内容都是easymock中最基本的使用介绍,虽然是英文,但是非常容易看懂,适用新学者入门。       这里只罗列一些简单的常用功能,依然以前面教程中使用到的测试案例为例:    public class UserServiceImplTest extends Assert {        @Test
    record-replay-verify 模型容许记录mock对象上的操作然后重演并验证这些操作。这是目前mock框架领域最常见的模型,几乎所有的mock框架都是用这个模型,有些是现实使用如easymock,有些是隐式使用如jmockit。       以easymock为例,典型的easymock使用案例一般如下, 援引上一章中的例子:   public class UserServiceImplTest {/**     * this is a classic test case to use EasyMock.
     在单元测试中,通常我们都会有一个明确的测试对象,我们测试的主要目的就是为了验证这个类的工作如我们预期。        以下面的简单代码为例:           public interface UserService {            User query(String userId);        }        public class UserServiceImpl implements Use
    easymock是目前比较流行的java mock 工具,这个教程将比较详细的介绍easymock的使用。       主要内容来自easymock的官网介绍和教程,我针对日常使用情况进行了一些筛选和补充,另外增加一些个人的理解和认识,希望能对不熟悉easymock的朋友们有所帮助。     如有疏漏,错误或者疑惑,欢迎大家指正和提醒,不胜感激。 一. 基本概念       这里讲述一些测试相关的基本概念,不仅仅适用于easymock,也同样适用于其他的mock框架如jmock,jmockit等。       1) mock 和 stub       2) 单 ...
近期发现一个问题,hudson执行任务时,经常不能获取到最新的代码,从而导致出现各种问题。  日常开发中的典型例子:发现一个bug,修改代码,本地测试通过,提交代码到subversion,手工激活hudson构建,原本期望hudson获取到刚刚提交的代码并测试/打包/发布。结果事与愿违,测试的结果发现刚刚做出的修改似乎没有生效。正费解之时,再执行一次hudson构建,又成功了...  经历过几次上述蹊跷遭遇之后,发现这个问题不是偶然。之后检查hudson的日志,发现问题的发现在最开始update / check out subversion代码时,明明已经提交的代码,hudson做updat ...
Maven 3.0 的第一个RC版本终于发布了,下面是sonatype给出的发布信息: http://www.sonatype.com/people/2010/09/please-try-maven-3-0-rc1/ Maven 在apache上的页面目前还没有放出RC1版本。下面是关于mavne3.*版本相对于2.* 版本的改进列表: https://cwiki.apache.org/confluence/display/MAVEN/Maven+3.x+Compatibility+Notes PS: 坦言说,改进很少,尤其没有大的功能改进,有点失望。 修订:上面的UR ...
confluence 3.3.1 安装笔记 一. 下载  官网下载地址: http://www.atlassian.com/software/confluence/ConfluenceDownloadCenter.jspa 支持多个平台,而且有多个安装版本。对于普通用户,根据各自情况可以考虑合适的版本:One-Click Evaluati ...
    之前安装的fisheye2.2.1,破解不是很好用,最近看到fisheye2.3.6版本有出新的破解方式,特地尝试了一下,成功安装。现在将过程简单分享给大家。 一. 准备工作 1. 下载fisheye2.3.6 http://www.atlassian.com/software/fisheye/downloads/binary ...
    作为测试的基本概念,在开发测试中经常遇到mock和stub。之前认为自己对这两个概念已经很明白了,但是当决定要写下来并写清楚以便能让不明白的人也能弄明白,似乎就很有困难。     试着写下此文,以检验自己是不是真的明白mock和stub。 一. 相同点         先看看两者的相同点吧,非常明确的是,mock和stub都可以用来对系统(或者将粒度放小为模块,单元)进行隔离。     在测试,尤其是单元测试中,我们通常关注的是主要测试对象的功能和行为,对于主要测试对象涉及到的次要对象尤其是一些依赖,我们仅仅关注主要测试对象和次要测试对象的交互,比如是否调用,何时调用,调用的参数 ...
    Tokyo Tyrant基本规范,翻译自Tokyo Tyrant官网,原文地址http://fallabs.com/tokyotyrant/spex.html。     主要内容为Tokyo Tyrant的介绍,安装,服务器程序,客户端程序,远程数据库API,Lua 扩展,协议和一个针对初学者的教程。 一.介绍     Tokyo Tyrant是名为Tokyo Cabinet的DBM的网络接口的套装。既然这个DBM拥有高性能,你可能烦恼于多个程序共享同一个数据库,或者远程程序访问数据库。因此,Tokyo Tyrant提供并发和远程连接到Tokyo Cabinet。它由管理数据库的服 ...
    Solr是一个基于Lucene java库的企业级搜索服务器,本文记录了solr的安装过程,版本为最新的1.4.1。 1) 下载     从solr的官网http://lucene.apache.org/solr/找到最新的版本1.4.1.     解开下载的apache-solr-1.4.1.zip或apache-solr-1.4.1.tgz文件到apache-solr-1.4.1目录. 2) 简易安装     solr的发布包中包含一些example,为了方便的运行这些example,solr的发布包中还额外的附带了jetty以便我们可以快速的搭建一个可运行的solr实例 ...
Tokyo Tyrant是目前评价最高的key-value数据库之一,本文记录在linux(suse11)上的安装过程。 1) 安装Tokyo Cabinet     Tokyo Tyrant和Tokyo Cabinet的关系,个人感觉类似于mysql数据库和InnoDB存储引擎的关系。在安装Tokyo Tyrant之前,首先需要安装 ...
    一直在使用easymock作为mock工具,但是easymock有一个一直令我极其恼火的地方:easymock将interface和class的mock区分开,给出了针对interface mock的easyMock和针对class mock的easyMock class extension。两种mock被严格区分开,连jar包都是两个,使用时不能混用,比如不能用easymock (非class extension)来mock class。     这也就算了,最要命的地方是,easyMock和easyMock class extension在使用时,class名是相同的,只是pack ...
    今天遇到的问题,subversive (应该是最新的版本,直接用elilipse从官网安装)  安装于 eclipse3.5.2,在本地先用TortoiseSVN 将代码从服务器端checkout下来,然后生成eclispe项目,再在eclispe的workspace重新导入项目。     之后发现subve ...
Global site tag (gtag.js) - Google Analytics