使用数组作为测试方法的参数
Using Array as Parameter for Test Method
常用的测试方法参数如下
@Test //Test method (dataProvider="login")
public void TestCase1(String field1, String field2)
{
driver.findElement(By.xpath("//[@id='username']")).sendKeys(field1);
driver.findElement(By.xpath("//[@id='password']")).sendKeys(field2);
}
结果是click on this image
我可以使用数组作为参数 (String[] fields)
,而不是具体的 (String field1, String field2)
作为参数吗? (请看下面的代码)
@Test //Test method (dataProvider="login")
public void TestCase1(String[] fields)
{
driver.findElement(By.xpath("//[@id='username']")).sendKeys(field[0]);
driver.findElement(By.xpath("//[@id='password']")).sendKeys(field[1]);
}
结果是click on this image
从结果来看,格式略有不同。
我的问题是这两种方法产生的含义相同吗?
这两种方法都会产生相同的结果。
但是,由于您似乎总是期待恰好有两个参数,所以我认为使用两个单独的参数而不是数组更有意义。它提高了可读性,因为您确切地知道每个参数是什么,并且它强制任何调用函数传递适当数量的参数。
明显有区别。
在第一种方法中,您使用 String 作为对象。
第二种方法是使用字符串数组。您需要了解 Arrays 和 String 之间的基本区别。
您可以将数组称为容器,其中包含多个Object/things 相同类型。数组显然在本质上具有固定大小。
现在数组可以是String类型,int类型等。
当您编写 String field1
时,那是一个 String 对象。
但是当你写String[] fields
时它是String对象的数组,这意味着它可以有多个String对象,你需要在初始化时声明大小。
尽管在您的场景中,两者都会产生相同的结果。话虽如此,您可以增加 String[]
的长度并可以使用 fields[0], fields[1], fields[2], fields[4]
等等..
两种方法都应该有效。第一个更具可读性(您也应该更改参数的名称)。
创建一个像 LogIn 这样的 class 也是一个好主意,它具有用户名和密码作为字段,因此它可以在将来扩展或被需要此类信息的多个测试重用,为测试用户创建一个构建器等等上。
常用的测试方法参数如下
@Test //Test method (dataProvider="login")
public void TestCase1(String field1, String field2)
{
driver.findElement(By.xpath("//[@id='username']")).sendKeys(field1);
driver.findElement(By.xpath("//[@id='password']")).sendKeys(field2);
}
结果是click on this image
我可以使用数组作为参数 (String[] fields)
,而不是具体的 (String field1, String field2)
作为参数吗? (请看下面的代码)
@Test //Test method (dataProvider="login")
public void TestCase1(String[] fields)
{
driver.findElement(By.xpath("//[@id='username']")).sendKeys(field[0]);
driver.findElement(By.xpath("//[@id='password']")).sendKeys(field[1]);
}
结果是click on this image
从结果来看,格式略有不同。
我的问题是这两种方法产生的含义相同吗?
这两种方法都会产生相同的结果。
但是,由于您似乎总是期待恰好有两个参数,所以我认为使用两个单独的参数而不是数组更有意义。它提高了可读性,因为您确切地知道每个参数是什么,并且它强制任何调用函数传递适当数量的参数。
明显有区别。
在第一种方法中,您使用 String 作为对象。
第二种方法是使用字符串数组。您需要了解 Arrays 和 String 之间的基本区别。
您可以将数组称为容器,其中包含多个Object/things 相同类型。数组显然在本质上具有固定大小。
现在数组可以是String类型,int类型等。
当您编写 String field1
时,那是一个 String 对象。
但是当你写String[] fields
时它是String对象的数组,这意味着它可以有多个String对象,你需要在初始化时声明大小。
尽管在您的场景中,两者都会产生相同的结果。话虽如此,您可以增加 String[]
的长度并可以使用 fields[0], fields[1], fields[2], fields[4]
等等..
两种方法都应该有效。第一个更具可读性(您也应该更改参数的名称)。 创建一个像 LogIn 这样的 class 也是一个好主意,它具有用户名和密码作为字段,因此它可以在将来扩展或被需要此类信息的多个测试重用,为测试用户创建一个构建器等等上。