testng和junit有啥优缺点,该怎样选择( 三 )
public class TestNGTest6_1_0 {@Test@Parameters(value="https://www.zhihu.com/api/v4/questions/26026007/number")public void parameterIntTest(int number) { System.out.println("Parameterized Number is : " + number); }}Java
XML文件的内容如下 –\u0026lt;suite name="My test suite"\u0026gt; \u0026lt;test name="testing"\u0026gt; \u0026lt;parameter name="number" value="https://www.zhihu.com/api/v4/questions/26026007/2"/\u0026gt; \u0026lt;classes\u0026gt; \u0026lt;class name="com.fsecure.demo.testng.TestNGTest6_0" /\u0026gt; \u0026lt;/classes\u0026gt; \u0026lt;/test\u0026gt;\u0026lt;/suite\u0026gt;XML
@DataProvider用于参数化测试
将数据值拉入XML文件可能非常方便,但测试偶尔会需要复杂的类型,这些类型不能被表示为一个字符串或一个原始类型值。 TestNG使用@DataProvider注解来处理这种情况,这有助于将复杂参数类型映射到测试方法。
@DataProvider for Vector,String或Integer作为参数,参考如下代码 –@Test(dataProvider = "Data-Provider-Function") public void parameterIntTest(Class clzz, String number) { System.out.println("Parameterized Number is : " + number); System.out.println("Parameterized Number is : " + number); } //This function will provide the patameter data @DataProvider(name = "Data-Provider-Function") public Object parameterIntTestProvider() { return new Object{ {Vector.class, new String {"java.util.AbstractList","java.util.AbstractCollection"}}, {String.class, new String {"1", "2"}}, {Integer.class, new String {"1", "2"}} }; }Java
@DataProvider作为对象的参数
“TestNGTest6_3_0”是一个简单的对象,只需使用get/set方法进行演示。@Test(dataProvider = "Data-Provider-Function")public void parameterIntTest(TestNGTest6_3_0 clzz) { System.out.println("Parameterized Number is : " + clzz.getMsg()); System.out.println("Parameterized Number is : " + clzz.getNumber());}//This function will provide the patameter data@DataProvider(name = "Data-Provider-Function")public Object parameterIntTestProvider() { TestNGTest6_3_0 obj = new TestNGTest6_3_0(); obj.setMsg("Hello"); obj.setNumber(123); return new Object{ {obj} };}Java
TestNG的参数化测试非常用户友好和灵活(在XML文件或类内)。 它可以支持许多复杂的数据类型作为参数值,可能性是无限的。 如上例所示,我们甚至可以传入我们自己的对象(TestNGTest6_3_0)进行参数化测试
7.依赖性测试 【testng和junit有啥优缺点,该怎样选择】 “参数化测试”表示方法是依赖性测试,它将在所需方法之前执行。 如果依赖方法失败,则所有后续测试将会被跳过,不会被标记为失败。
JUnit 4
JUnit框架着重于测试隔离; 目前它不支持此功能。
TestNG
它使用“dependOnMethods”来实现依赖测试如下 –@Testpublic void method1() { System.out.println("This is method 1");}@Test(dependsOnMethods={"method1"})public void method2() { System.out.println("This is method 2");}
推荐阅读
- 有啥方法,网站,项目可以自己练习计算广告学
- 100W——150W有啥好的车
- 最近有啥样的交友软件比较好玩呢
- 最近有啥好期待的网游玩
- 电子信息工程考研有啥偏软件类的专业可以报考
- 淘宝上有啥体验不错的假货,赝品或者山寨货?
- Java工程师和C++工程师在工作上有啥区别哪个更适合自身发展
- 端口到底是啥概念和ip之间有啥关系能形象+抽象的从技术角度描述一下吗
- QQ那个戴头盔吸烟的表情有啥来历
- 天猫买东西电话,家庭住址,姓名被泄露,阿里有啥措施
