代码改变世界

16、测试用例参数化

  软件测试汪  阅读(615)  评论(0编辑  收藏  举报
  • 通过 @Parameters 实现参数化

目录如下:

 

DataProviderTest.java 代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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 代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
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" 调用定义的对象数组, 并通过参数获取相应的测试数据。

 

执行结果如下:

 

编辑推荐:
· 一个超经典 WinForm,WPF 卡死问题的终极反思
· ASP.NET Core - 日志记录系统(二)
· .NET 依赖注入中的 Captive Dependency
· .NET Core 对象分配(Alloc)底层原理浅谈
· 聊一聊 C#异步 任务延续的三种底层玩法
阅读排行:
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(一):从.NET IoT入
· .NET 开发的分流抢票软件,不做广告、不收集隐私
· ASP.NET Core - 日志记录系统(二)
· 一个超经典 WinForm,WPF 卡死问题的终极反思
· 实现windows下简单的自动化窗口管理
点击右上角即可分享
微信分享提示