通过 @Parameters 实现测试用例参数化

发表于:2021-8-05 09:49

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:软件测试汪    来源:博客园

  目录如下:
  DataProviderTest.java 代码如下:
  package com.testng.cn;
   
  import org.testng.annotations.Parameters;
  import org.testng.annotations.Test;
   
  import static org.testng.Assert.assertEquals;
   
  public class DataProviderTest {
   
      @Test
      @Parameters({"add1","add2","result"})
      public void testAdd1(int add1, int add2, int result){
          assertEquals(add1+ add2, result);
      }
  }
  testng.xml配置文件如下:
  <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
  <suite name="测试套件">
      <test name="简单测试">
          <parameter name="add1" value="3"/>
          <parameter name="add2" value="2"/>
          <parameter name="result" value="5"/>
          <classes>
              <class name="com.testng.cn.DataProviderTest" />
          </classes>
      </test>
  </suite>
  <parameter.../> 定义测试数据
  · name 定义数据的名字, 在测试用例中通过该名字来获取对应的 vlaue。
  · o value 定义测试数据, 通过对应的 name 来获取该值。
  运行结果如下:
   通过 @DataProvider 实现参数化。
  DataProviderTest.java 代码如下:
  package com.testng.cn;
   
  import org.testng.annotations.DataProvider;
  import org.testng.annotations.Test;
   
  import static org.testng.Assert.assertEquals;
   
  public class DataProviderTest {
   
   
      // 定义对象数组
      @DataProvider(name = "add")
      public Object[][] Users() {
          return new Object[][] {
                  { 3, 2, 5 },
                  { 2, 2, 4 },
                  { 3, 3, 6 },
          };
      }
   
      @Test(dataProvider="add")
      public void testAdd2(int add1, int add2, int result){
          assertEquals(add1+add2, result);
      }
   
  }
  @DataProvider 定义对象数组, 数组的名称为: add 。
  在 testAdd2() 中通过 dataProvider="add" 调用定义的对象数组, 并通过参数获取相应的测试数据。
  执行结果如下: 
   
     本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号