一、测试要求
测试要使用传参的方式进行自动测试,不能一遍遍手动输入参数。
二、实现步骤
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; }
这个方法中有两个参数 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));; } }
4.运行结果
测试0和2成功,因为数据库中数据正确,测试1失败,因为数据错误