开篇

- 快速进行软件编码,与功能测试应该是每个写代码的人,应该掌握的技能,如何进行优雅的写代码,把测试的时间压缩,腾出时间来休息。下面听我一一道来:

依赖:junit 4.4

hamcrest 1.3 core hamcrest 1.3 lib

——包我会放到码云

  • 项目结构

  • 选择测试类,创建测试用例: test case

  • 勾选需要测试的方法



- 下一步生成测试用例

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.fail; import java.io.ByteArrayOutputStream;
import java.io.PrintStream; import static org.hamcrest.Matchers.*;
import org.junit.After;
import org.junit.Before;
import org.junit.Test; public class DateTest2 {
private Date allDate;
private ByteArrayOutputStream bytes;
@Before
public void setUp() throws Exception {
allDate=new Date(5, 18, 2017);
bytes = new ByteArrayOutputStream();
System.setOut(new PrintStream(bytes));
} @After
public void tearDown() throws Exception {
System.setOut(System.out);
} @Test
public void testDate() {
Date date=new Date(5, 18, 2017);
assertEquals(true, date instanceof Date);
} @Test
public void testIncrement() {
allDate.increment();
System.out.println();
assertEquals(6, allDate.getMonth().getMonth());
}
@Test
public void testPrintDate() {
allDate.printDate();
assertThat(bytes.toString(),is("5/18/2017\r\n"));
} @Test
public void testGetDay() {
fail("Not yet implemented");
} @Test
public void testGetMonth() {
fail("Not yet implemented");
} @Test
public void testGetYear() {
fail("Not yet implemented");
} @Test
public void testEqualsObject() {
fail("Not yet implemented");
} @Test
public void testToString() {
fail("Not yet implemented");
} }
  • fail() 方法为测试junit自动生成,意味失败;下面列举junit常用测试方法“

    也叫 断言 使用断言时候 ,建议静态导入

assertEquals(String msg, Object expectRes, Object Res) --------  用于值判断

判断expectRes.equals(Res) ,表示值等于的判断,失败则抛MSG

assertSame(String msg, Object expectRes, Object Res)  --------  用于地址判断

判断expectRes==Res,表示地址等于的判断,失败则抛MSG

assertTrue(String msg,Boolean result) ----------------------------用于Boolean判断

判断result是true还是false,失败则抛MSG

assertNull(String msg,Object result)-------------------------------用于NULL判断

判断result是否为NULL,失败则抛MSG

fail(String msg);---------------------------------------------------直接中止方法运行

直接中止方法运行,抛出MSG
  • 每一个测试方法上@test 为标注为junit测试方法 ;

显示绿条,意味测试通过

junit搭配hamcrest使用的更多相关文章

  1. Junit,hamcrest和Eclemma安装及使用

    Junit和hamcrest下载及安装 下载地址 Junit      http://download.csdn.net/detail/luzle/6915487 Hamcrest  http://d ...

  2. Spring Test, JUnit, Mockito, Hamcrest 集成 Web 测试

    关于Spring 3.2 1. Spring 3.2 及以上版本自动开启检测URL后缀,设置Response content-type功能, 如果不手动关闭这个功能,当url后缀与accept头不一致 ...

  3. Junit Hamcrest Mockito单元测试

    pom.xml配置 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="h ...

  4. JUnit学习之hamcrest、testSuite介绍及测试原则

    [转自] http://huihai.iteye.com/blog/1994270 上一节说了junit的一些基本概念,主要使用assert做一些基本的判断.但很多时候使用assert做判断,并不方便 ...

  5. test lab ~ triangle test by using junit and coverage

    first set up a new folder as your test class place, and then let your package in test class folder b ...

  6. junit 使用

    今天用jsoup做了一个‘网络抓取实例’,然而,当作者把junit-4.11.jar 导入项目中,在类中方法上加入@Test,运行时却报错,报错代码如下: java.lang.NoClassDefFo ...

  7. 软件测试作业3--Junit、hamcrest、eclemmat的安装和使用

    1.   how to install junit, hamcrest and eclemma? 首先下载下来Junit和Hamcrest的jar包,然后新建项目的时候将这两个jar包导入到工程里面就 ...

  8. 学习hamcrest和mockito时的总结和demo

    UT中需要的jar Junit4.1X.jar hamcrest-library-1.x.jar hamcrest-core-l.x.jar mockito-all-1.10.x.jar Junit ...

  9. JUnit报initializationError的解决方法

    在新搭建的环境上测试时,一个模块发现错误: java.lang.NoClassDefFoundError:org/hamcrest/SelfDescribing 一看就是缺少Class.多方查找,发现 ...

随机推荐

  1. 201521123013 《Java程序设计》第14周学习总结

    1. 本周学习总结 2. 书面作业 Q1. MySQL数据库基本操作 1.1 建立数据库,将自己的姓名.学号作为一条记录插入.(截图,需出现自己的学号.姓名) 1.2 在自己建立的数据库上执行常见SQ ...

  2. eclipse: eclipse导入工程出现大红叹号

    总结: 问题原因:工程中classpath中指向的包路径错误 解决办法:到BUILDPATH CONFIG````中,liberaies中 出现红色叉号的包为路径错误的包.到classpath中修改相 ...

  3. CSS3滤镜(filter--CSS3技术

    filter 属性定义了元素(通常是<img>)的可视效果,例如图片的模糊.饱和度.灰度等……个人感觉功能很强大 1.filter的语法 filter: none | blur() | b ...

  4. 注解【介绍、基本Annotation、元Anntation、自定义注解、注入基本信息、对象】

    什么是注解? 注解:Annotation-. 注解其实就是代码中的特殊标记,这些标记可以在编译.类加载.运行时被读取,并执行相对应的处理. 为什么我们需要用到注解? 传统的方式,我们是通过配置文件(x ...

  5. Java通过链表实现队列

    class LinkedQueue<T> { /** * 队列大小,由构造函数初始化 */ private int maxSize; /** * 队头 */ private Node fr ...

  6. Extjs2.0 desktop 动态创建桌面图标和开始菜单

    这几天一直纠结Extjs desktop怎么动态读取数据,用Ext.net已经实现但是不灵活.Ext.net做出来的桌面在窗口关闭后只是隐藏该窗口,并没有释放,对于我这种js菜鸟来说,改那一坨代码要人 ...

  7. <c:forEach>+<c:if>

    <c:forEach>:用来做循环<c:if>:相当于if语句用于判断执行,如果表达式的值为 true 则执行其主体内容. <c:forEach var="每个 ...

  8. 线段树初步__ZERO__.

    线段树,顾名思义,就是指一个个线段组成的树. 线段树的定义就是: 线段树是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点.使用线段树可以快速的查找某 ...

  9. EXIT_SUCCESS EXIT_FAILURE

    在vc++6.0下头文件stdlib.h中定义如下: /* Definition of the argument values for the exit() function */ #define E ...

  10. 一款优秀的JavaScript框架—AngularJS

    AngularJS简介 AngularJS诞生于2009年,由Misko Hevery 等人创建,后为Google所收购.是一款优秀的前端JS框架,已经被用于Google的多款产品当中.Angular ...