Jbehave故事中的ErrorCollector

时间:2014-10-28 15:15:59

标签: jbehave errorcollector

ErrorCollector规则允许在找到第一个问题后继续执行测试(例如,收集表中所有不正确的行,并立即报告所有行)。

我尝试将org.junit.rules.ErrorCollector与Jbehave故事一起使用,但在执行之后,JBehave说"所有测试都通过"即使有一些失败,ErrorCollector()收集它们。 JBehave应该说一些步骤失败了。

在JUnit中没关系:

public static class UsesErrorCollectorTwice {
  @Rule
  public ErrorCollector collector= new ErrorCollector();

  @Test
  public void example() {
    String x = [..]
    collector.checkThat(x, not(containsString("a")));
    collector.checkThat(y, containsString("b"));             
  }
}

但是在jbehave:

Scenario: S-1
Given check something

...

@Given("check something")
    public void checkLoggedIn() {        
        loginSteps.check_that();
    }

...

import org.hamcrest.Matchers;
import org.junit.rules.ErrorCollector;
import org.junit.Rule;

...

@Rule
    public ErrorCollector collector= new ErrorCollector();

...

@Step
    public void check_that() { 
        collector.checkThat("Error example", navigationMenuPanel.isUserSignedIn(), Matchers.is(false));
        collector.checkThat("User has not been logged-in yet!", navigationMenuPanel.isUserSignedIn(), Matchers.is(true));
        collector.addError(new Throwable("Shit error happen"));
        collector.checkThat("It'wrong", 1, Matchers.equalTo(3));
    }

这个故事总是过去。

0 个答案:

没有答案