• Junit参数化测试Spring应用Dubbo接口


    一、创建基础类。

    package com.tree.autotest;

    import org.junit.Before;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.test.context.ContextConfiguration;
    import org.springframework.test.context.TestContextManager;
    import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;

    /**
    * 规则包:
    * 规则编码:
    * 规则名称:
    * 规则条件:
    * <p>
    * Created by zhf2015 on 16/8/1.
    */
    //@RunWith(SpringJUnit4ClassRunner.class)
    @ContextConfiguration(locations = {"classpath:/spring-context.xml"})
    @Configuration
    public class BaseJunit4Test extends AbstractJUnit4SpringContextTests {

    protected TestContextManager testContextManager;
    @Before
    public void setUpContext() throws Exception {
    this.testContextManager = new TestContextManager(getClass());
    this.testContextManager.prepareTestInstance(this);
    }

    }

    二、创建测试类,继承基础类。
    package com.tree.autotest.testcase.BillDetailTypeService;

    import com.datatrees.basisdata.bankbill.model.Bill;
    import com.datatrees.basisdata.bankbill.service.BillService;
    import com.tree.autotest.BaseJunit4Test;
    import com.tree.autotest.commons.CommonUtil_2;
    import com.tree.autotest.commons.TestCase;
    import com.tree.autotest.jdbc.DBIdConstant;
    import com.tree.autotest.jdbc.ManagedSqlUtil;
    import org.junit.After;
    import org.junit.Assert;
    import org.junit.Before;
    import org.junit.Test;
    import org.junit.runner.RunWith;
    import org.junit.runners.Parameterized;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.beans.factory.annotation.Autowired;

    import java.sql.SQLException;
    import java.util.ArrayList;
    import java.util.Collection;
    import java.util.List;
    import java.util.Map;

    /**
    * Created by lyh on 17/2/13.
    */
    @RunWith(value=Parameterized.class)
    public class TestSelectListByUserId2 extends BaseJunit4Test{
    // ApplicationContext factory=new ClassPathXmlApplicationContext("classpath:/spring-context.xml");
    @Autowired
    private BillService billService;
    // private BillService billService = (BillService)factory.getBean("billService");
    private static final Logger logger = LoggerFactory.getLogger(TestSelectListByUserId2.class);


    private boolean handleOk;
    private String insertSql1;
    private static String excel;
    private static Map allCases;
    private Integer testUser;

    @Parameterized.Parameters
    public static Collection<Integer[]> getTestParameters(){

    List<Integer[]> list = new ArrayList<Integer[]>();
    list.add(new Integer[]{2000998248}); //expected,valueOne,valueTwo
    list.add(new Integer[]{2000020021});
    list.add(new Integer[]{2001999335});
    String st=list.toString();
    System.out.println("list值:" + st);

    return list;


    }
    public TestSelectListByUserId2(Integer userid){
    this.testUser = userid;
    }


    @Before
    public void setUp() throws SQLException {
    //获取excel用例列表
    excel = "src/main/resources/case/BillService/TestSelectListByUserId.xlsx";
    allCases = CommonUtil_2.getAllCases(excel);
    System.out.println("setUp 执行");
    // //获取用户ID
    TestCase testcase = CommonUtil_2.getTestCaseBean(allCases, "case1", "case1-1");
    testUser =Integer.valueOf(testcase.param1);
    //获取SQL
    insertSql1 = testcase.stepSql;
    //删除,添加数据
    handleOk &= deleteData(testUser);
    handleOk &= ManagedSqlUtil.insertBySql(insertSql1, DBIdConstant.MySql_Basisdata_ID);


    }

    @Test
    public void test_case_1() throws Exception {
    //++++++++++++++实际值+++++++++++++
    List<Bill> actual_list =
    billService.selectListByUserId(testUser);
    System.out.println("testUser值:"+testUser);
    //++++++++++++++验证+++++++++++++
    Assert.assertNotNull("测试失败",actual_list);
    for(int i=0;i<actual_list.size();i++) {
    Assert.assertEquals("测试失败",actual_list.get(i).getUserId(),testUser);
    }
    System.out.println("actual_list的size:"+actual_list.size());
    }


    @After
    public void tearDown() {

    deleteData(testUser);
    System.out.println("tearDown 执行");
    }

    //定义数据清理
    public boolean deleteData(Integer userId) {
    String deleteSql1 = "delete from t_bill where UserId="+userId+";";
    handleOk &= ManagedSqlUtil.deleteBySql(deleteSql1, DBIdConstant.MySql_Basisdata_ID);
    return handleOk;
    }
    }

    三、配置文件和数据文件和上一篇文章一致。
  • 相关阅读:
    正方形_自适应_移动端
    meta name="viewport" content="width=device-width,initial-scale=1.0"
    :before/:after与::before/::after的区别 和属性content:值
    布局:flex弹性布局_兼容性写法
    布局:文本多列布局 column-* :
    布局:网格布局
    clear
    布局:盒模型 box-sizing : border-box ;
    object-fit : cover; 对象(图片和视频对象)
    布局:flex弹性布局_实践02
  • 原文地址:https://www.cnblogs.com/ceshi2016/p/6440078.html
Copyright © 2020-2023  润新知