1

我在 Eclipse 中使用 Selenium Web Driver 和 JUnit。我需要创建简单的检查页面上是否存在某些文本 - 如果是,则我需要生成错误。我希望在 JUnit 故障跟踪中显示此错误。这是我的代码:

public class Check  {
@Rule
public ErrorCollector errCollector = new ErrorCollector();

@FindBy(tagName="body")
@CacheLookup
private WebElement titl;
@FindBy(partialLinkText="Exception")
@CacheLookup
private WebElement excep;


public void check_false(String t, String r) {
        try {
             String bodyText = titl.getText();
             Assert.assertFalse("Exception found", bodyText.contains(t)); }
         catch (AssertionError e) {
             System.err.println(r + ": " + e.getMessage());
             System.out.println(excep.getText());
             errCollector.addError(e);   
            }    
          }

如果我得到错误,它会显示在 Eclipse 控制台中,但测试是否在 JUnit 中显示为没有错误并且没有显示异常消息。我怎样才能正确检查?

4

2 回答 2

0

我用

AssertJUnit.assertFalse("发现异常", bodyText.contains(t));

它来自http://testng.org/doc/index.html 参见http://testng.org/javadoc/org/testng/AssertJUnit.html

当我的测试失败时,在eclipse中,在junit窗口中我得到了stackstrace。从未尝试收集错误。它会抛出一个

断言失败错误

如果测试失败但如果你抓住它,我不知道堆栈跟踪是否会在 JUnit 窗口中。

于 2012-07-23T09:23:58.560 回答
0

这可能不是你所追求的,在这种情况下我很抱歉,但你可以简单地失败并提供一个可选消息来说明原因。

public void checkText(String actual, String expected){
  try{
    if(!expected.equals(actuals){
      fail("Expected : [ " expected + " ] , actual [" + actual + "]"
  }catch(SomeOtherException soe){
      fail(soe.getMessage());
  }
 }
于 2012-07-23T10:56:53.440 回答