单元测试框架-Junit介绍

在工作中编写接口脚本中经常用到junit作为测试框架,下面总结一下junit的用法和编写规范,供大家参考。

junit简介:

基于Java语言的单元测试框架,在日常工作中被广泛运用于单元测试和接口测试。

junit官网:http://junit.org/junit4/

maven引入依赖,我用的是junit4:

<dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.9</version>
</dependency>

Junit用法介绍(这里只介绍本人接口测试工作中最常用的,其余用法上官网查询):

Junit生命周期:

@BeforeClass:针对当前测试类中的所有测试方法,只执行一次,且必须为static void。比如你的测试用例执行前需要一些高开销的资源(连接数据库)可以用@BeforeClass搞定。值得注意的是如果测试用例类的父类中也存在@BeforeClass修饰的方法,它将在子类的@BeforeClass之前执行。
@AfterClass:同样修饰static的方法,在整个类执行结束前执行一次。如果你用@BeforeClass创建了一些资源现在是时候释放它们了。
@Before:修饰public void的方法,在每个测试用例(方法)执行时都会执行。
@After:修饰public void的方法,在每个测试用例执行结束后执行。
执行顺序:@BeforeClass>@Before>@Test>@After>@AfterClass

常用断言:

Junit自带Assert类:
import org.junit.Assert;
之后就可以用以下方法进行断言。
AssertTrue、AssertFalse:定义结果的true、false。
AssertThat:使用Matcher做自定义的校验。
AssertEquals、AssertNotEquals:判断两个对象是否相等。
AssertNull、AssertNotNull:判断对象是否为空。
AssertSame:判断两个对象是否为同一个,不同于equals这里是使用“==”判断。
AssertArrayEquals:判断两个数组是否相等。
Assert断言

这里再补充两种扩展断言库:Hamcrest,AssertJ(自行了解)

测试组件:

Junit4中通过注解来实现了测试组件,意为:可以运行指定测试的几个类,举例:

// 指定运行器
@RunWith(Suite.class)
// 指定运行AcceptTest和AcceptAllTest类中的所有测试方法
@Suite.SuiteClasses({AcceptTest.class, AcceptAllTest.class})
public class SuitTest {

异常处理:

Junit还提供了一些注解来处理异常的情况,如:
1.忽略运行测试方法(@Ignore),标注忽略运行的原因:
例:

@Ignore("Test is ignored as a demonstration")
@Test
public void testSame() {
    assertThat(1, is(1));
}

2.超时时间(@Test(timeout = xxx)),一个用例运行超过xxx时间会自动失败,单位为毫秒。
3.测试异常,如果运行测试方法后,测试方法没有抛出异常,那么这个测试方法就不能通过。
例:

public class SuitTest {
    private SupplyInfo supplyInfo;
    @Test(expected = NullPointerException.class)
    /*
    supplyInfo未赋值,假设我要验证这个用例会抛出空指针,不定义expected = NullPointerException.class时这个用例会抛出异常,定义后这个用例就执行通过,验证通过*
    */
    public void test() throws Exception {
        supplyInfo.setIsItemEmploy(0);
  Assert.assertEquals("0",supplyInfo.getIsItemEmploy().toString());
    }
}

Junit接口测试编写规范:

1.测试类访问权限是public、返回值是void,没有传参;
2.测试类以被测方法+Test结尾;
3.测试方法以test_N(E)校验点预期结果命名,N代表正常场景用例,E代表异常场景用例;(针对接口测试)
4.其他接口规范在另写文章表述;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值