开篇

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

依赖: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. 201521123027 《JAVA程序设计》第四周学习总结

    1.本周学习总结 1.1 尝试使用思维导图总结有关继承的知识点. 1.2 使用常规方法总结其他上课内容. ①多态:相同方法名,不同实现: ②instanceof运算符:判断父类引用所引用的对象实例的实 ...

  2. java: Java中this和super的用法总结

    this this是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针. this的用法在java中大体可以分为3种: 1.普通的直接引用 这种就不用讲了,this相当于是指向当前对象本 ...

  3. Eclipse rap 富客户端开发总结(10) : Rap不同系统间的差异和处理方式

    平常进行 rap 程序开发一般都是在 win 下面完成 , 然后在 tomcat 下面测试 , 但是程序最终发布一般都是在 linux  aix 上面 , 这个时候就有能会出现一下问题,下面 2 个问 ...

  4. apache-beanutil工具类的使用

    BeanUtil工具类是apache commons中的项目 使用BeanUtil除了需要 commons-beanutils-1.8.3.jar 外,可能需要记录错误日志信息,再加入 commons ...

  5. Qt Creator编译运行成功,但是显示系统找不到指定的文件(比如urlmon.dll动态链接库)

    问题: 以前自己写的一个QT界面程序,在win 7 的32位系统上运行没有出现任何问题,但是重装系统之后,同样的程序放到win10 的64位系统下运行会出现警告:onecoreuap\inetcore ...

  6. CSS3的颜色渐变效果

    在 animate.css寻找自己想要的动态效果,看到标题Animate.css和按钮Animate it的颜色在逐渐变化,觉得蛮有趣的,把控制变化的相关代码扒了下来,自己分析实现一波. 一开始认为使 ...

  7. Excel 若某列包含某个字符则特定列显示特定字符

    今天在写Excel , 有很多重复的数据, 在想 如果 可以像Java  一样 筛选就好了 这样的效果 if ("adj".equals(sheet1.A1)){ sheet1.B ...

  8. Cheat sheet for Jupyter Notebook

    近期,DataCamp发布了jupyter notebook的 cheat sheet,[Python数据之道]第一时间与大家一起来分享下该cheat sheet的内容. 以下是该cheat shee ...

  9. angular学习笔记04 理论加实践

    scope: 布尔型或对象(默认为false) ,为true时继承父作用域并创建一个新的作用域隔离作用域具有隔离作用域的指令最主要的使用场景是创建可复用的组件, 组件可以在未知上下文中使用,并且可以避 ...

  10. iOS9.3越狱

    转载:http://bbs.feng.com/read-htm-tid-10680439.html   首先是Windows英文版越狱的的教程 下载 Cydia Impactor 工具(用来安装越狱A ...