美文网首页
JUnit单元测试3—参数化测试

JUnit单元测试3—参数化测试

作者: 莫问君心 | 来源:发表于2019-09-26 14:56 被阅读0次

JUnit 4中引入了参数化测试功能,支持使用不同的测试数据反复执行同一个测试类中的测试方法。可以极大提高测试开发效率,降低代码重复度。

参数化测试的5个基本步骤:

  1. 使用@RunWith(Parameterized.class)注解测试类。
  2. 在测试类中创建一个使用@Parameters注解的公共静态方法,并返回一个包含测试数据对象的集合。
  3. 创建一个测试类的公共构造函数,其接受的入参和测试数据对象相互对应。
  4. 编写测试方法,测试方法中可以使用测试类的变量(变量数据来自构造函数接受的测试数据)。
  5. JUnit执行测试时,自动会为测试数据对象集合中的每一列数据创建一个测试实例,测试实例中的变量会作为测试方法的测试数据来源。

示例程序:

import static org.junit.Assert.*;

import java.util.Arrays;
import java.util.Collection;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;

@RunWith(Parameterized.class)
public class HelloWorldBatchTest {
    private String name;
    private String expected;
    
    public HelloWorldBatchTest(String expected, String name){
        this.expected = expected;
        this.name = name;
    }
    
    @Parameters
    public static Collection<Object[]> initTestData(){
        return Arrays.asList(new Object[][] {
            {"hello:world", "world"},
            {"hello:", ""},
            {"hello:null", null},
            {"hello:!@#$%^&*()_+", "!@#$%^&*()_+"}
        });
    }
    
    @Test
    public void testSayHello() {
        HelloWorld helloWorld = new HelloWorld();
        assertEquals(this.expected, helloWorld.sayHello(this.name));
    }
}

使用mvn test命令执行测试:

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running HelloWorldBatchTest
Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.12 sec

Results :

Tests run: 4, Failures: 0, Errors: 0, Skipped: 0

上一篇:JUnit单元测试2—测试框架
下一篇:JUnit单元测试4—模拟Web服务器

相关文章

  • 第十章 使用Maven测试

    自动化单元测试,通过maven-surefire-plugin于主流单元测试框架junit3,junit4及Tes...

  • JUnit单元测试3—参数化测试

    JUnit 4中引入了参数化测试功能,支持使用不同的测试数据反复执行同一个测试类中的测试方法。可以极大提高测试开发...

  • JUnit

    JUnit是用于编写可重复测试的单元测试框架,可实现自动化测试。JUnit官方API文档:http://junit...

  • 3/26day19_JUnit单元测试_NIO

    day19_JUnit单元测试_NIO 复习 今日内容 Junit单元测试[重点] 单元测试概念 什么叫单元测试单...

  • JUnit单元测试打进jar包(eclipse)

    一、编写JUnit单元测试类 在src/main/test目录下编写Junit单元测试类。 二、编写运行JUnit...

  • Instrumentation

    1、Instrumentation单元测试框架,基于Junit;Junit是java单元测试根本 2、想要进行自动...

  • JUnit4.12入门实践

    内容概要: 为什么要做单元测试 JUnit简介 单元测试规范 JUnit4常用注解 JUnit4异常和超时测试 J...

  • SpringBoot7(Junit测试)

    七、Junit 测试 Junit单元测试 单元测试是针对项目中单一目标(一个类或几个方法)的测试。单元测试可以有效...

  • Junit单元测试&反射&注解

    本节内容 Junit单元测试 反射 注解 Junit单元测试 测试分类:黑盒测试:不需要写代码,给输入值,看程序是...

  • Junit测试

    今日内容 Junit单元测试 反射 注解 Junit单元测试: 测试分类:1. 黑盒测试:不需要写代码,给输入值,...

网友评论

      本文标题:JUnit单元测试3—参数化测试

      本文链接:https://www.haomeiwen.com/subject/wpghyctx.html