【问题标题】:where I could find documentation on verification methods?我在哪里可以找到有关验证方法的文档?
【发布时间】:2012-07-13 15:12:14
【问题描述】:

我使用 Assert 类来检查页面上是否有一些文本,如果文本不存在,此命令将停止执行测试。我想使用验证。有人能告诉我在哪里可以找到有关此类方法的文档吗?

我的意思是 WebDriver,junit。比如这样的代码

String text=("Terms");
 List<WebElement> list = driver.findElements(By.xpath("//*[contains(text(),'" + text + "')]"));
 Assert.assertEquals("Text not found!", "Terms", list);

如果页面上没有文字“Term”,junit test 将中断测试,但我只需要获取错误消息并继续测试。

【问题讨论】:

  • 这到底是什么意思?在软件测试的上下文中,我知道“验证”这个词的几个含义。你到底想做什么?
  • 根据对您问题的主要修改更新了我的答案。希望这会有所帮助。
  • Assert.assertEquals("Text not found!", "Terms", list); 总是失败,但这是另一个问题:)

标签: java selenium verification


【解决方案1】:

如果您想继续执行您的测试用例,即使您期望的某些结果失败并在完全执行结束时查看结果。

你可以这样做 -

声明一个变量来存储所有在执行过程中失败的测试用例结果,然后在tearDown方法中调用Assert.fail(String message)

 StringBuffer errors = new StringBuffer();

 @Test
 public void testSomething(){
    if(!"data".equals(text)){
      addErrors(text +"not equal to data");
    }

    // add any number of if statements to check anything else 
 }

 @After()
 public void tearDown(){
   if(errors.length()!=0){         
     Assert.fail(errors.toString());
   } 
 }

 public String addErrors(String message){
   errors = errors.append(message+"\n");
 }

现在在 testSomething() 方法中,您可以检查或测试网页上的任意数量的 WebElement,您所要做的就是使用一个简单的 if 语句来检查某些事情是否正确,如果不正确,则调用 addErrors()方法。希望对您有所帮助。

【讨论】:

    【解决方案2】:

    听起来你只需要捕获和处理Assert (documented here) 的各种方法抛出的AssertionError。像这样的:

    try {
      Assert.assertEquals("Text not found!", "Terms", list);
    } catch (AssertionError e) {
      System.err.println("Assertion failed: " + e.getMessage());
    }
    

    【讨论】:

    • 这里的“Selenium”是指 Selenium IDE。对于 Selenium RC 或 Selenium WebDriver,通常使用 JUnit 或 TestNG 的断言。
    • 一个简单的if 声明就足够了,因为你shouldn't use try-catch for flow control。但是,是的,差不多就是这样。
    猜你喜欢
    • 2020-08-15
    • 2019-09-04
    • 2015-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-16
    • 2012-02-27
    相关资源
    最近更新 更多