• (九)TestNG 用例参数化


    参数化也测试用例中常用的技巧之一,它可以增加用例的可配置性和减少相同用例的编写。

    通过 @Parameters 实现参数化


    import org.testng.annotations.Parameters;
    import org.testng.annotations.Test;
    import static org.testng.AssertJUnit.assertEquals;
    
    public class DataProviderTest {
    
        @Test
        @Parameters({"add1","add2","result"})
        publicvoidtestAdd1(int add1, int add2, int result){
            assertEquals(add1+ add2, result);
        }
    
    }
    
    • @Parameters 获取参数化数据,作为 testAdd1() 测试方法的参数。

    具体的测试数据在 testng.mxl 文件中设置。

    <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
    <suite name="测试套件">
        <testname="简单测试">
            <parametername="add1"value="3"/>
            <parametername="add2"value="2"/>
            <parametername="result"value="5"/>
            <classes>
                <classname="test.sample.DataProviderTest" />
            </classes>
        </test>
    </suite>
    
    • <parameter.../> 定义测试数据
      • name 定义数据的名字,在测试用例中通过该名字来获取对应的vlaue。
      • value 定义测试数据,通过对应的name来获取该值。

    通过 @DataProvider 实现参数化


    import org.testng.annotations.DataProvider;
    import org.testng.annotations.Test;
    import static org.testng.AssertJUnit.assertEquals;
    
    public class DataProviderTest {
    
        // 定义对象数组
        @DataProvider(name = "add")
        public Object[][] Users() {
            return new Object[][] {
                    { 3, 2, 5 },
                    { 2, 2, 4 },
                    { 3, 3, 7 },
            };
        }
    
        @Test(dataProvider="add")
        publicvoidtestAdd2(int add1, int add2, int result){
            assertEquals(add1+add2, result);
        }
    
    }
    
    • @DataProvider 定义对象数组,数组的名称为:add 。

    在 testAdd2() 中通过 dataProvider="add" 调用定义的对象数组,并通过参数获取相应的测试数据。

    执行结果如下:

  • 相关阅读:
    codeforces 665C C. Simple Strings(乱搞)
    codeforces 665B B. Shopping(水题)
    codeforces 665A A. Buses Between Cities(水题)
    hdu-2647 Reward && hdu-2049产生冠军 &&hdu-3342Legal or Not(拓扑排序)
    codeforces 450B B. Jzzhu and Sequences(矩阵快速幂)
    hdu-5596 GTW likes gt(模拟+优先队列)
    codeforces 664C C. International Olympiad(数学)
    hdu-5003 Osu!(水题)
    hdu-5000 Clone(dp)
    组合数学中的常见定理&组合数的计算&取模
  • 原文地址:https://www.cnblogs.com/xinlan06/p/11498779.html
Copyright © 2020-2023  润新知