简单工厂模式 TestNG简单的学习(12)

电脑杂谈  发布时间:2018-02-12 00:40:45  来源:网络整理

如果在testng.xml文件中没有找到名为"db"的参数,测试方法将接受在@Optional注解中指定的默认值:"mysql"

@Parameters 注解可以在下面位置使用:

* 在任何有@Test, @Before/After或者@Factory注解的方法上

* 在测试类的最多一个构造函数上。这种情况下,当TestNG需要实例化测试类时,他将调用这个特别的带有初始化为testng.xml中指定的值的参数的构造函数。这个特性可以被用于初始化类内部的值域为将用于测试方法的值。

注意:

* xml参数被以在注解中出现的相同顺序映射到java参数,如果参数数量不匹配testNG将发生错误。

* 参数是有范围的。在testng.xml中,你可以在<suite>标签或者<test>标签下声明参数。如果两个参数同名,在<test>标签下定义的参数优先。非常适用于这样的场合:需要指定一个应用于所有测试的参数,但是又希望在特定测试用覆盖它的值。

5.5.2 - Parameters with DataProviders

在testng.xml中指定参数,对于以下情况是不够的:

* 不使用testng.xml

* 需要传递复杂参数,或者参数需要从java中创建(复杂对象,从属性文件或者中读取的对象)在这种情况下,你可以使用Data Provider来提供你测试需要的数值。Data Provider是类中的一个返回对象数组的数组的方法。这个方法带有@DataProvider注解:

//这个方法将提供数据给任何声明它的Data Provider名为"test1"的测试方法

@DataProvider(name = "test1")

public Object[][] createData1() {

return new Object[][] {

{ "Cedric", new Integer(36) },

{ "Anne", new Integer(37)},

};

}

@DataProvider(name = "test1")

public Object[][] createData1() {

return new Object[][] {

{ "Cedric", new Integer(36) },

{ "Anne", new Integer(37)},

};

}

//这个方法声明它的数据将由名为"test1"的Data Provider提供

@Test(dataProvider = "test1")

public void verifyData1(String n1, Integer n2) {

System.out.println(n1 + " " + n2);

}

@Test(dataProvider = "test1")

public void verifyData1(String n1, Integer n2) {

System.out.println(n1 + " " + n2);

}

将打印

Cedric 36

Anne 37

@Test方法用dataProvider属性来指定它的Data Provider。这个名字必须符合同一个类中用@DataProvider(name="...")注解的方法,它们要使用同一个匹配的名字。

默认,将在当前类或者它的基类中查找data provider。如果你想将data provider放置到另一个类中,需要将这个data provider方法设置为静态方法,并在dataProviderClass属性中指定在哪个类中可以找到这个方法。


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-72701-12.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...