测试方法的常用参数如下
@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);
}
我可以使用数组作为参数(String field1, String field2)
而不是特定的(String[] fields)
作为参数吗? (请参见下面的代码)
@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]);
}
从结果看,格式方面略有不同。
我的问题是,这两种方法产生的含义相同吗?
答案 0 :(得分:2)
显然有区别。
第一种方法是将 String 用作对象。
第二种方法是使用字符串数组。您需要了解数组和 String 之间的基本区别。
您可以将数组称为容器,其中包含多个相同类型的对象/事物。而且数组显然具有固定的大小。
现在的数组可以是String类型,int类型等。
编写String field1
时,这是单个String对象。
但是,当您编写String[] fields
时,它是String对象的数组,这意味着它可以有多个String对象,并且您需要在初始化时声明大小。
尽管在您的方案中,两者都会产生相同的结果。话虽如此,您可以增加String[]
的长度并可以使用fields[0], fields[1], fields[2], fields[4]
,依此类推。.
答案 1 :(得分:1)
这两种方法都会产生相同的结果。
但是,由于您似乎总是希望有两个参数,所以我认为使用两个单独的参数而不是数组更有意义。由于您可以确切知道每个参数的含义,因此可以提高可读性,并且可以强制任何调用函数传递适当数量的参数。
答案 2 :(得分:1)
这两种方法都应该起作用。第一个更具可读性(您还应该更改参数的名称)。 创建像LogIn这样的类也是一个好主意,该类具有用户名和密码作为字段,以便将来可以扩展或由需要此类信息的多个测试重用,为测试用户创建构建器,等等。>