似乎我不够聪明自己搞清楚 - 我安装了Eclipse Kepler,使用了jUnit 4.11,selenium-java 2.41和一个用于selenium的mozilla插件。
一切都很棒,一切(此刻)都很棒。 我的目标是创建一个测试,每次使用第二个String []数组元素重复n次。例如:
`@Test
public void testGoogleSearch() throws Exception {
driver.get(baseUrl);
driver.findElement(By.id("gbqfq")).clear();
driver.findElement(By.id("gbqfq")).sendKeys("Find me"); // Input text from String array here
driver.findElement(By.id("gbqfb")).click();
try {
assertEquals("Find me", driver.findElement(By.id("gbqfq")).getAttribute("value"));
} catch (Error e) {
verificationErrors.append(e.toString());
}
}`
如您所见,有静态“找我”文字。我想,我的测试将运行5次,每次输入更改为早期定义的数组元素。
我该怎么做?有线索吗?我读过有关参数化测试的内容,但它确实是我需要的吗?我没有发现任何有关多次重复的内容。
任何帮助都会很棒。谢谢。
答案 0 :(得分:1)
已阅读有关参数化测试的信息,但它确实是我需要的吗?
是的,这正是您所需要的。 Parameterized.class:
@RunWith(Parameterized.class)
public class GoogleSearchClass {
private String searchString;
private String expectedString;
public GoogleSearchClass (String srch, String expect){
searchString = srch;
expectedString = expect;
}
@Parameterized.Parameters
public static Collection<Object[]> data() {
return Arrays.asList(new Object[][]{
{"search1", "expected1"}, {"search2", "expected2"}, {"search3", "expected3"}
});
}
@Test
public void testGoogleSearch() throws Exception {
driver.get("http://google.com");
driver.findElement(By.id("gbqfq")).clear();
driver.findElement(By.id("gbqfq")).sendKeys(searchString); // Input text from String array here
driver.findElement(By.id("gbqfb")).click();
try {
// Assert.assertEquals(expectedString, driver.findElement(By.id("gbqfq")).getAttribute("value"));
} catch (AssertionError e) {
}
}
}