JUnit基础学习

    JUnit是一个Java语言的单元测试框架。它由Kent Beck和Erich Gamma建立,逐渐成为源于Kent Beck的
sUnit的xUnit家族中最为成功的一个。 JUnit有它自己的JUnit扩展生态圈。多数Java的开发环境都已经
集成了JUnit作为单元测试的工具。

PS:最新的版本是JUnit4,我们这篇博客介绍的也是JUnit4。

一、JUnit4中常用注释

JUnit4中常用的注释有:

@Before :与junit3.x中的setUp()方法功能一样,在每个测试方法之前执行;
@After :与junit3.x中的tearDown()方法功能一样,在每个测试方法之后执行;
@BeforeClass :在所有方法执行之前执行;
@AfterClass :在所有方法执行之后执行;
@Test(timeout = xxx) :设置当前测试方法在一定时间内运行完,否则返回错误;
@Test(expected = Exception.class) :设置被测试的方法是否有异常抛出。抛出异常类型为:Exception.class;
@Ignore :注释掉一个测试方法或一个类,被注释的方法或类,不会被执行。

二、JUnit中常用断言

JUnit被用来测试代码,并且它是由能够测试不同条件的断言方法(assertion method)组成,常用断言方法如下,共7个:

assertEquals(a,b)
测试a是否等于b(a和b是原始类型数值(primitive value)或者必须为实现比较而具有equal方法)

assertTrue(a)
测试a是否为true(真),a是一个Boolean数值。

assertFalse(a)
测试a是否为false(假),a是一个Boolean数值。

assertNotNull(a)
测试a是否非空,a是一个对象或者null。

assertNull(a)
测试a是否为null,a是一个对象或者null。

assertNotSame(a,b)
测试a和b是否没有都引用同一个对象。

assertSame(a,b)
测试a和b是否都引用同一个对象。

三、JUnit4新增“万能”断言

最新的JUnit4已经引入了全新的断言方法:assertThat。这个断言方法的好处非常多,比较突出的有两点。

第一,它和以往的断言方法相比,可读性更强,使用上更加灵活,简单易用。

第二,由于JUnit4引入了Hamcrest框架,从而使得可以通过assertThat这一断言方法替代以往所有的断言方法,使得整个断言方法的使用得到统一。

由于篇幅问题,本处仅举一个例子来说明:

判断两个值是否相等,原来的方式如下:

        int expected = 20;
        int actual = 20;
        assertEquals(expected, actual);

现在,可以使用assertThat进行统一,如下:

        int expected = 20;
        int actual = 20;
        assertThat(actual, IsEqual.equalTo(expected));

我们可以看到使用assertThat不仅可以对assertEquals实现完美地替换,而且断言更加符合自然语言的规则,“主谓宾”显然要比原来的方式更加容易让人理解和分析。

PS:其他断言方法的替换与此类似,具体可查看官方文档,这里不再赘述。

四、补充说明

我们看到,JUnit4中引入了Hamcrest框架,但是在使用中,我们发现JUnit4并没有完全包含Hamcrest框架的所有内容。所以,如果你想使用Hamcrest中更多的功能,则需要去Hamcrest官网下载并进行相应配置。

JUnit官网:http://junit.org/
Hamcrest官网:http://hamcrest.org/

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值