2014-01-22 39 views
0

我有一个包含50个多WebElements,我想断言有正确的文本页面大量WebElements的。我正在使用页面对象,所以测试是与对象分离的,测试是断言必须存在的地方。处理断言使用webdriver的页面对象模型

我不想有50单独测试@的每个元素,所以我需要某种形式的集合,列表或阵列来存放文本值,然后断言针对每一个。但是,如果一个文本值错误(可能出现频繁更新的页面并且包含50个值的情况),我不希望测试出现问题。这指向每个断言分开的@Test's?

所以我需要做一个driver.findElement(通过.....每个元素,在PageObject。

然后我需要通过WebElement的值作为一个字符串(S)使用.getText()),最好用一种方法。

我需要断言文本是每个在测试类的50个值的正确的,优选在一个@Test,但没有测试失败,如果一个值不正确。

我一直是这样摔跤几个小时,对不起,如果这是不明确和文本块道歉;我是初学者 - 如果我能澄清请问。显然这是我失踪的一种常见方法。

感谢

回答

1

如果你使用JUnit 4.0或以上版本,你可以使用parameterized tests。与注释

  • Test类@RunWith(Parameterized.class)
  • 与注释@Parameters(这个返回则params的嵌套阵列)
  • 测试在类将一次为每个组则params的运行的静态方法

来自以上wiki链接的示例:

@RunWith(Parameterized.class) 
public class FibonacciTest { 
    @Parameters 
    public static Collection<Object[]> data() { 
     return Arrays.asList(new Object[][] { 

       { 0, 0 }, { 1, 1 }, { 2, 1 }, { 3, 2 }, { 4, 3 }, { 5, 5 },{ 6, 8 } 
      }); 
    } 

    private int fInput; 

    private int fExpected; 

    public FibonacciTest(int input, int expected) { 
     fInput= input; 
     fExpected= expected; 
    } 

    @Test 
    public void test() { 
     assertEquals(fExpected, Fibonacci.compute(fInput)); 
    } 
} 
+0

谢谢 - 这是一个很好的解决方案重刑! – Steerpike

相关问题