摘要:我不知道Test Double翻译成中文是什么,测试替身?Test Double就像是陈龙大哥电影里的替身,起到以假乱真的作用。在单元测试时,使用Test Double减少对被测对象的依赖,使得测试更加单一,同时,让测试案例执行的时间更短,运行更加稳定,同时能对SUT内部的输入输出进行验证,让测试更...
阅读全文
摘要:Spring 的依赖配置方式与 Spring 框架的内核自身是松耦合设计的。然而,直到 Spring 3.0 以前,使用 XML 进行依赖配置几乎是唯一的选择。Spring 3.0 的出现改变了这一状况,它提供了一系列的针对依赖注入的注解,这使得 Spring IoC 在 XML 文件之外多了一种可...
阅读全文
摘要:Spring 2.5 TestContext 测试框架用于测试基于 Spring 的程序,TestContext 测试框架和低版本 Spring 测试框架没有任何关系,是一个全新的基于注解的测试框架,为 Spring 推荐使用该测试框架。3评论:陈 雄华(quickselect@163.com), ...
阅读全文
摘要:byPETRI KAINULAINENonJUNE 28, 2013Writing unit tests for Spring MVC controllers has traditionally been both simple and problematic.Although it is pret...
阅读全文
摘要:byPETRI KAINULAINENonJULY 7, 2013The first part of this tutorial described how we canconfigure our unit testswhich use the Spring MVC Test framework.教...
阅读全文
摘要:关于Spring 3.21. Spring 3.2 及以上版本自动开启检测URL后缀,设置Response content-type功能, 如果不手动关闭这个功能,当url后缀与accept头不一致时, Response的content-type将会和request的accept不一致,导致报406...
阅读全文
摘要:通过本文,您能够在较短的时间内掌握使用 Spring 单元测试框架测试基于 Spring 的应用程序的方法,这套方法主要涵盖如何使用 Spring 测试注释来进行常见的 Junit4 或者 TestNG 的单元测试,同时支持访问 Spring 的 beanFactory 和进行自动化的事务管理。概述...
阅读全文
摘要:使用RunWith注解改变JUnit的默认执行类,并实现自已的Listener在平时的单元测试,如果不使用RunWith注解,那么JUnit将会采用默认的执行类Suite执行,如下类:[java]view plaincopypublicclassTestClass{@Testpublicvoidt1...
阅读全文
摘要:@ContextConfiguration用来指定加载的Spring配置文件的位置,会加载默认配置文件例如下例会加载:classpath:/com/example/MyTest-context.xml文件package com.example;@ContextConfigurationpublic ...
阅读全文
摘要:本文仅基于3.0+版本作为测试)假定spring容器中定义了两个事务管理器:transactionManagerX,transactionManagerY,分管两个数据源datasourceX和datasourceY.(spring容器中的定义顺序如上)有如下应用代码:publicinterface...
阅读全文
摘要:Spring事务配置的五种方式 前段时间对Spring的事务配置做了比较深入的研究,在此之间对Spring的事务配置虽说也配置过,但是一直没有一个清楚的认识。通过这次的学习发觉Spring的事务配置只要把思路理清,还是比较好掌握的。 总结如下: Spring配置文件中关于事务配置总是由三个组成部分,...
阅读全文
摘要:Spring——jar包详解org.springframework.aop ——Spring的面向切面编程,提供AOP(面向切面编程)的实现org.springframework.asm——spring 2.5.6的时候需要asm jar包,spring3.0开始提供它自己独立的asm jar包or...
阅读全文
摘要:第一种,简单粗暴直接1http://repo.springsource.org/libs-release-local/org/springframework/spring/3.2.4.RELEASE/spring-framework-3.2.4.RELEASE-dist.zip直接粘到地址栏或者下载...
阅读全文
摘要:Log4J的配置文件(Configuration File)就是用来设置记录器的级别、存放器和布局的,它可接key=value格式的设置或xml格式的设置信息。通过配置,可以创建出Log4J的运行环境。1. 配置文件Log4J配置文件的基本格式如下:#配置根Loggerlog4j.rootLogge...
阅读全文
摘要:在Spring容器中为一个bean配置依赖注入有三种方式:·使用属性的setter方法注入这是最常用的方式;·使用构造器注入;·使用Filed注入(用于注解方式).使用属性的setter方法注入首先要配置被注入的bean,在该bean对应的类中,应该有要注入的对象属性或者基本数据类型的属性。例如:为...
阅读全文
摘要:在本文中,您将与 Elliotte Rusty Harold 一起研究如何通过 mock 对象(更具体地说,是使用 EasyMock 框架)轻松地完成一些困难的单元测试。这个开放源码库可以帮助您节省时间,并让 mock 对象代码更加简洁与清晰。测试驱动开发是软件开发的重要部分。如果代码不进行测试,就...
阅读全文
摘要:1.Mock 方法是单元测试中常见的一种技术,它的主要作用是模拟一些在应用中不容易构造或者比较复杂的对象,从而把测试与测试边界以外的对象隔离开。同时也可以当调用别人的模块,而该模块又没有实现时(只提供接口),我们可以在独立的环境中测试自己的模块逻辑。2.使用前的准备,下载所需的jar包:easymo...
阅读全文
摘要:Installation InstructionsMaven is a Java tool, so you must haveJavainstalled in order to proceed. More precisely, you need a Java Development Kit (JDK...
阅读全文
摘要:一、为什么要使用Mock工具 在做单元测试的时候,我们会发现我们要测试的方法会引用很多外部依赖的对象,比如:(发送邮件,网络通讯,远程服务, 文件系统等等)。 而我们没法控制这些外部依赖的对象,为了解决这个问题,我们就需要用到Mock工具来模拟这些外部依赖的对象,来完成单元测试。 二、为什么要使...
阅读全文
摘要:以下是我整理的自己开发过程中的常用Eclipse插件,按字母排序:(1)AmaterasUML 介绍:Eclipse的UML插件,支持UML活动图,class图,sequence图,usecase图等;支持与Java class/interface之间的相互导入导出。官方网站:http://amat...
阅读全文
摘要:1. Redis的定义 这个问题的结果影响了我们怎么用Redis。如果你认为Redis是一个key value store, 那可能会用它来代替MySQL;如果认为它是一个可以持久化的cache, 可能只是它保存一些频繁访问的临时数据。Redis是REmote DIctionaryServer的缩写...
阅读全文
摘要:最近项目组有用到这三个缓存,去各自的官方看了下,觉得还真的各有千秋!今天特意归纳下各个缓存的优缺点,仅供参考!Ehcache在java项目广泛的使用。它是一个开源的、设计于提高在数据从RDBMS中取出来的高花费、高延迟采取的一种缓存方案。正因为Ehcache具有健壮性(基于java开发)、被认证(具...
阅读全文
摘要:RPM是RedHat Package Manager(RedHat软件包管理工具)类似Windows里面的“添加/删除程序”rpm 执行安装包二进制包(Binary)以及源代码包(Source)两种。二进制包可以直接安装在计算机中,而源代码包将会由RPM自动编译、安装。源代码包经常以src.rpm作...
阅读全文
摘要:RPM是RedhatPackageManager的缩写,是由RedHat公司开发的软件包安装和管理程序,同Windows平台上的Uninstaller比较类似。使用RPM,用户可以自行安装和管理Linux上的应用程序和系统工具。RPM可以让用户直接以binary方式安装软件包,并且可替用户查询是否已...
阅读全文
摘要:RPM 大全RPM 有五种基本的操作方式(不包括创建软件包): 安装, 卸载, 升级, 查询,和验证。 下面我们就来逐一的讲解吧。一、 安装RPM包RPM 软件包通常具有类似foo-1.0-1.i386.rpm 的文件名。其中包括 软件包的名称(foo),版本号(1.0),发行号(1), 和 硬件平...
阅读全文
摘要:rpm 执行安装包二进制包(Binary)以及源代码包(Source)两种。二进制包可以直接安装在计算机中,而源代码包将会由 RPM自动编译、安装。源代码包经常以src.rpm作为后缀名。常用命令组合:-ivh:安装显示安装进度--install--verbose--hash-Uvh:升级软件包--...
阅读全文
摘要:yum是一个用于管理rpm包的后台程序,用python写成,可以非常方便的解决rpm的依赖关系。在建立好yum服务器后,yum客户端可以通过 http、ftp方式获得软件包,并使用方便的命令直接管理、更新所有的rpm包,甚至包括kernel的更新。它也可以理解为红旗环境下的apt管理工具。 以前写过...
阅读全文
摘要:yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。yu...
阅读全文
摘要:1、介绍Jstat用于监控基于HotSpot的JVM,对其堆的使用情况进行实时的命令行的统计,使用jstat我们可以对指定的JVM做如下监控:- 类的加载及卸载情况- 查看新生代、老生代及持久代的容量及使用情况- 查看新生代、老生代及持久代的垃圾收集情况,包括垃圾回收的次数及垃圾回收所占用的时间- ...
阅读全文
摘要:1、介绍jstack用于打印出给定的java进程ID或corefile或远程调试服务的Java堆栈信息,如果是在64位机器上,需要指定选项"-J-d64",Windows的jstack使用方式只支持以下的这种方式:jstack[-l]pid如果java程序崩溃生成core文件,jstack工具可以用...
阅读全文
摘要:1、介绍 用来查看基于HotSpot的JVM里面中,所有具有访问权限的Java进程的具体状态,包括进程ID,进程启动的路径及启动参数等等,与unix上的ps类似,只不过jps是用来显示java进程,可以把jps理解为ps的一个子集。 使用jps时,如果没有指定hostid,它只会显示本地环境中所有的...
阅读全文
摘要:When there is an obstacle, or when a Java based Web application is running much slower than expected,we need to usethread dumps. If thread dumps feel ...
阅读全文
摘要:最近抽时间把JVM运行过程中产生的一些线程进行了整理,主要是围绕着我们系统jstack生成的文件为参照依据。 前段时间因为系统代码问题,造成性能到了天花板,于是就dump了一份stack出来进行分析。 看stack其实也需要一定的经验,毕竟它里面很多线程不可能都是有问题,所以,需要对他们有一定认识。...
阅读全文
摘要:Java 的线程线程是指能独立于程序的其它部分运行的执行单元。 JAVA语言能够很好的实现多线程的程序。我们在调试程序,或者在开发后期需要做性能调优的时候,往往也需要了解当前程序正在运行的线程的状态,正在执行的操作,从而分析系统可能存在的问题。在阅读本文之间,应对 Java线程的编程原理,同步机制有...
阅读全文
摘要:前言Java Thread Dump 是一个非常有用的应用诊断工具, 通过thread dump出来的信息, 可以定位到你需要了解的线程, 以及这个线程的调用栈. 如果配合linux的top命令, 可以找到你的系统中的最耗CPU的线程代码段, 这样才能有针对性地进行优化.场景和实践 2.1. 后台...
阅读全文
摘要:Thread Dump and Concurrency LocksThread dumps are very useful for diagnosing synchronization related problems such as deadlocks on object monitors.Ctr...
阅读全文
摘要:通过jps -lv 获取到本地的一个JVM实例进程。再通过jstack pid > thread.txt ,把stack trace输出到thread.txt文件中。2012-08-28 23:16:39Java代码2012-08-2823:16:39FullthreaddumpOpenJDKCli...
阅读全文
摘要:jstack Dump 日志文件中的线程状态dump 文件里,值得关注的线程状态有:死锁,Deadlock(重点关注)执行中,Runnable 等待资源,Waiting on condition(重点关注)等待获取监视器,Waiting on monitor entry(重点关注)暂停,Suspen...
阅读全文
摘要:1. top 命令top命令查看系统的资源状况 load average表示在过去的一段时间内有多少个进程企图独占CPU zombie 进程 :不是异常情况。一个进程从创建到结束在最后那一段时间遍是僵尸。留在内存中等待父进程取的东西便是僵尸。任何程序都有僵尸状态,它占用一点内存资源,仅仅是表象而...
阅读全文
摘要:这两天为了定位JBOSS老是挂死的问题,学习了一下JAVA多线程方面的知识,在此总结一下1、在Java程序中,JVM负责线程的调度。线程调度是指按照特定的机制为多个线程分配CPU的使用权。调度的模式有两种:分时调度和抢占式调度。分时调度是所有线程轮流获得CPU使用权,并平均分配每个线程占用CPU的时...
阅读全文
摘要:使用TDA 工具,看到大量 Java Thread State 的第一反应是:1,线程状态为“waiting for monitor entry”:意味着它在等待进入一个临界区,所以它在”Entry Set“队列中等待。此时线程状态一般都是 Blocked:java.lang.Thread.Stat...
阅读全文
摘要:我们使用jdk自带的jstack来分析。当linux出现cpu被java程序消耗过高时,以下过程说不定可以帮上你的忙:1.top查找出哪个进程消耗的cpu高21125 co_ad2 18 0 1817m 776m 9712 S 3.3 4.9 12:03.24 java5284 co_ad 21 0...
阅读全文
摘要:1、cat /proc/${pid}/status2、pstree -p ${pid}3、top -p ${pid} 再按H 或者直接输入 top -bH -d 3 -p ${pid}top -H手册中说:-H : Threads toggle加上这个选项启动top,top一行显示一个线程。否则,...
阅读全文
摘要:public static enum Thread.Stateextends Enum线程状态。线程可以处于下列状态之一:1.NEW至今尚未启动的线程的状态。2.RUNNABLE可运行线程的线程状态。处于可运行状态的某一线程正在 Java 虚拟机中运行,但它可能正在等待操作系统中的其他资源,比如处理...
阅读全文
摘要:对于像'Wed, 11 Apr 2012 09:37:05 +0800'的时间格式化可如下解:>>> date='Wed, 11 Apr 2012 09:37:05 +0800'>>> dd=datetime.datetime.strptime(date,'%a, %d %b %Y %H:%M:%S...
阅读全文
摘要:Jacoco介绍Jacoco是一个开源的覆盖率工具。Jacoco可以嵌入到Ant 、Maven中,并提供了EclEmma Eclipse插件,也可以使用JavaAgent技术监控Java程序。很多第三方的工具提供了对Jacoco的集成,如sonar、Jenkins等。官网地址:http://www....
阅读全文
摘要:覆盖率计数器Jacoco使用一系列的不同的计数器来做覆盖率的度量计算。所有这些计数器都是从java的class文件中获取信息,这些class文件可以(可选)包含调试的信息在里面。即使在没有源码的情况下,这种方法也可以实时有效地对应用程序进行度量和分析。在大部分情况下,收集到的信息可以映射到源码,可视...
阅读全文
摘要:单元测试是编写测试代码,用来检测特定的、明确的、细颗粒的功能。单元测试并不一定保证程序功能是正确的,更不保证整体业务是准备的。单元测试不仅仅用来保证当前代码的正确性,更重要的是用来保证代码修复、改进或重构之后的正确性。一般来说,单元测试任务包括接口功能测试:用来保证接口功能的正确性。局部数据结构测试...
阅读全文
摘要:本文主要介绍了如何使用 JUnit 4 提供的各种功能开展有效的单元测试,并通过一个实例演示了如何使用 Ant 执行自动化的单元测试。本文假设读者对 Eclipse 下进行 Java 开发有一定的经验,并了解 Java 5 中的注解(annotation)特性。引言毋庸置疑,程序员要对自己编写的代码...
阅读全文
摘要:如果能在构建代码前发现代码中潜在的问题会怎么样呢?很有趣的是,Eclipse 插件中就有这样的工具,比如 JDepend 和 CheckStyle,它们能帮您在软件问题暴露前发现这些问题。在让开发自动化的本期文章中,自动化专家 Paul Duvall 将带来一些关于 Eclipse 插件的例子,您可...
阅读全文
摘要:覆盖测试是衡量测试质量的一个重要指标。在对一个软件产品进行了单元测试、组装测试、集成测试以及接受测试等繁多的测试之后,我们能不能就此对软件的质量产生一定的信心呢?这就需要我们对测试的质量进行考察。如果测试仅覆盖了代码的一小部分,那么不管我们写了多少测试用例,我们也不能相信软件质量是有保证的。相反,如...
阅读全文
摘要:importtimedeftimestamp_datetime(value):format='%Y-%m-%d %H:%M:%S'# value为传入的值为时间戳(整形),如:1332888820value =time.localtime(value)## 经过localtime转换后变成## ti...
阅读全文