junit搭配hamcrest使用

开篇

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

依赖:junit 4.4
hamcrest 1.3 core hamcrest 1.3 lib

  • 项目结构
Paste_Image.png
  • 选择测试类,创建测试用例: test case
Paste_Image.png
  • 勾选需要测试的方法
Paste_Image.png
  • 下一步生成测试用例
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测试方法 ;

显示绿条,意味测试通过


Paste_Image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,026评论 19 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,785评论 18 399
  • 一. Java基础部分.................................................
    wy_sure阅读 3,840评论 0 11
  • 多态 任何域的访问操作都将有编译器解析,如果某个方法是静态的,它的行为就不具有多态性 java默认对象的销毁顺序与...
    yueyue_projects阅读 994评论 0 1
  • iOS开发过程中,当我们创建的tableview为plain类型时,会发现其分割线左边总是会有一定的边距,通过设置...
    YasinWei阅读 291评论 0 1