TestNG使用@Parameter给要测试的方法传递参数
当需要测试的方法含有参数时,可以通过@Parameters 注解给该方法传递参数。
比如下面这个类,要调用whoami则必须写一个main函数,然后在main函数中调用该函数,并传入参数,使用TestNG的@Parameters参数则不需要这么做。
package ngtest;
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;
public class Student {
@Parameters({"name","age"})//表示该函数使用的参数由testng.xml提供,第一个参数是xml中的name参数,第二个是age参数
@Test
public void whoami(String name,String age){
System.out.println("I am "+name+","+age+" years old.");
}
}
testng.xml配置如下
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite">
<parameter name="name" value="Mike"></parameter> <!--参数name的值是Mike-->
<parameter name="age" value="18"></parameter> <!--参数age的值是18-->
<test name="Test">
<classes>
<class name="ngtest.Student"/>
</classes>
</test>
</suite>
运行该testng.xml就会把name和age的值代入到函数的参数列表中,然后执行该函数。输出结果:
[TestNG] Running:
D:\workspace\tester\testng.xml
I am Mike,18 years old
===============================================
Suite
Total tests run: 1, Failures: 0, Skips: 0
===============================================
还可以使用Optinal注解,如果在testng.xml中没找到Parameters中指定的参数,那么就会使用Optional中的参数来替代。
public class TestNg3 {
@Parameters({"parm1"})
@Test
public void Test(@Optional("没有参数只能用我了") String a){ //如果在testng.xml中没有找到param1参数,则会给a赋值“没有参数只能用我了”
System.out.println(a);
}//打印 没有参数只能用我了
}
testng.xml文件中参数的作用范围
testng.xml文件中的参数是有作用范围的,下面的param1在全局范围内都是hahahaha,但是在一个Test内是oooo,这种情况特别适用于在全局范围内某个值是固定的,但是在某个特殊情况下需要改变它的值的情况
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="My test suite">
<parameter name="parm1" value="hahahaha"/>
<test name="First Test">
<parameter name="parm1" value="oooooooo"/>
<classes>
<class name="com.cangqiong.test.TestNg3"/>
</classes>
</test>
</suite>
@Parameter参数使用的位置
- 可以用在任意有@Test、@Before/@After 或者@Factory注解的方法上
- 可以用在一个类的有参数构造方法上,此类的有参数构造方法只能有一个带@Parameter注解,再执行testng.xml时就会调用此构造方法构造此类的对象。
TestNG使用@Parameter给要测试的方法传递参数的更多相关文章
- 给方法传递参数:ref参数和out参数
/*--------------------------------------------------- 给方法传递参数:ref参数和out参数 (P106) ------------------- ...
- Java方法传递参数传值还是传址的问题
这几天重构项目代码遇到一个疑问:可不可以在方法A中定义一个boolean变量b为false,然后A调用方法C把b传递到C方法中经过一些列业务判断后修改为true,C执行结束后A方法中b的值还是原来的f ...
- HTML的GET方法传递参数样式。
#HTML的GET方法传递参数样式.http://127.0.0.1:8080/web1/urlinfo/getobject.html?UserId=1&UserName=ad
- tornado框架的get方法传递参数
tornado框架的get方法传递参数,代码: # encoding: utf-8 """ @version: ?? @author: andu99 @contact: ...
- MVC学习系列2--向Action方法传递参数
首先,新建一个web项目,新建一个Home控制器,默认的代码如下: public class HomeController : Controller { // GET: Home public Act ...
- c# 方法传递参数
一.参数的使用方法: 1.值参数(Value Parameter ) 格式:方法名称(参数类型 参数名称[,参数类型 参数名称]) 2.引用参数(Reference Parameter ) 格式:方法 ...
- [ActionScript 3.0] 通过内联函数对addFrameScript方法传递参数
虽然说不推荐使用影片剪辑隐藏方法addFrameScript();但是解决某些问题,此方法的确会方便很多. 但是却不能直接传递参数,不过可以用迂回的方法,如下: mc.addFrameScript(m ...
- JAVA方法传递参数:传值?传引用?
先来看下面这三段代码: //Example1: public class Example1 { static void check(int a) { a++; } public static void ...
- elementUI 等 UI框架中,@change方法传递参数
有些业务中,在使用 @change 回调的时候需要动态获取当前循环下的特定值,但是@change方法一旦传递参数就会覆盖原本的数据,对此,有两种方法解决: // 这种方法据说会改变 this 指向 ...
随机推荐
- 曹工说Tomcat2:自己撸一个简易Tomcat Digester
一.前言 框架代码其实也没那么难,大家不要看着源码就害怕,现在去看 Tomcat 3.0的代码,保证还是看得懂一半,照着撸一遍基本上很多问题都能搞定了.这次我们就模拟 Tomcat 中的 Digest ...
- 微信小程序商城 带java后台源码
微信小程序商城(Java版) 演示地址 账号:admin 密码:admin 小程序体验码: 技术选型 1 后端使用技术 1.1 springframework4.3.7.RELEASE 1.2 myb ...
- 【React】存储全局数据
参考链接:https://segmentfault.com/a/1190000012057010?utm_source=tag-newest webstorage webstorage是本地存储,存储 ...
- kubernetes实战篇之helm示例yaml文件文件详细介绍
系列目录 前面完整示例里,我们主要讲解helm打包,部署,升级,回退等功能,关于这里面的文件只是简单介绍,这一节我们详细介绍一下这里面的文件,以方便我们参照创建自己的helm chart. Helm ...
- JavaScript-倒计时效果
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 西门子S7-1200与 G120系列变频器USS通信
西门子S7-1200 紧凑型PLC在当前的市场中有着广泛的应用,作为经常与SINAMICS G120系列变频器共同使用的PLC,其USS通信协议的使用一直在市场上有着非常广泛的应用.本文将主要介绍如何 ...
- 基于 MySQL Binlog 的 Elasticsearch 数据同步实践 原
一.背景 随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品.订单等数据的多维度检索. 使用 Elasticsearch 存储业务数据可以 ...
- GitHub代码阅读神器,你值有拥有!
(题图:from github) Github作为全球最大的程序员聚集地,已经成为学习开发技能的绝佳伴侣(如果你是程序员,但你还没有账户的话,这里建议你去signup,毕竟能增加成长的机会,不能错过 ...
- Spring boot ,dubbo整合异常
Caused by: java.lang.IllegalArgumentException: java.lang.ClassCastException: com.guooo.boot.acc.serv ...
- Jenkins构建部署jar/war后,服务无法在后台持续运行的解决方案
jenkins中自动构建helpcenter.jar文件,然后以在server上以shell脚本的形式启动jar服务.jenkins构建后,手动执行sh脚本,服务启动异常.但jenkins结合shel ...