zoukankan      html  css  js  c++  java
  • 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失败,因为数据错误

  • 相关阅读:
    php if() 括号中为 真详解
    php 写入日志
    trim,rtrim,ltrim详解
    SQlite3 的简单用法。 调用本地时间
    RuntimeError at /host You called this URL via POST, but the URL doesn't end in a slash and you have APPEND_SLASH set. Django can't redirect to the slash URL while maintaining POST data. Change your fo
    D3.js 入门系列3
    js中const,var,let区别
    D3.js 入门系列2 — 选择元素和绑定数据
    D3.js 入门系列1
    SVG 教程03
  • 原文地址:https://www.cnblogs.com/wangzhaojun1670/p/14929915.html
Copyright © 2011-2022 走看看