Junit单元测试参数自动化

一、测试要求

  测试要使用传参的方式进行自动测试,不能一遍遍手动输入参数。

二、实现步骤

1.创建资源文件夹

项目名右键>>new>>other>>Sourece folder

 

输入资源文件夹的名字,然后点击finish

2.创建单元测试

在要测试的java文件右键>>new>>Junit test case

这里我测试的是service.impl文件

 

 

 点击finish即可

3.代码

被测试文件中有好多方法,因为每个方法传递的参数不同,所以为每个方法都建立一个测试,现给出登录方法及其测试

service.impl

public User login(String username, String password) {
        User user = new User();
        user = dao.findUserByUsernameAndPassword(username, password);
        if(user!=null)
            return user;
        
        return null;
    }
View Code

这个方法中有两个参数 username,password,将这两个参数作为测试类的私有属性

DemoServiceImplTest.java

package com.zzh.service.impl;



import java.util.Arrays;
import java.util.List;

import org.junit.Assert;
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 DemoServiceImplTest {
    private String username;
    private String password;
    /* 构造函数需要的参数会自动从参数列表中依次取出 */
    public DemoServiceImplTest(String username,String password) {
        this.username=username;
        this.password=password;
    }

    @Parameters(name = "{index}: parm({0},{1})")
     public static List<Object[]> data() {
     /*这里有三个测试用例,每个测试用例两个参数,每次系统会自动调用测试用例,循环三次用以初始化构造函数*/         
            return Arrays.asList(new Object[][] { {"qqq","123123"}, {"user","123"},{"admin","admin"}});
        }    
    @Test
    public void test() {
        DemoServiceImpl demo=new DemoServiceImpl();
        Assert.assertNotNull(demo.login(username,password));;
        
    }

}
View Code

4.运行结果

 

测试0和2成功,因为数据库中数据正确,测试1失败,因为数据错误

 

posted @ 2021-06-25 10:43  Protect_Winter  阅读(349)  评论(0编辑  收藏  举报