如何让浓缩咖啡测试在特定条件下失败

Posted

技术标签:

【中文标题】如何让浓缩咖啡测试在特定条件下失败【英文标题】:How to let espresso tests fail for a specific condition 【发布时间】:2018-01-17 10:22:49 【问题描述】:

对于我的 espresso 测试,我正在寻找一种方法,如果不满足特定条件,则让所有测试在运行之前失败。我怎样才能做到这一点?

【问题讨论】:

我提到的条件应该是类似于互联网连接状态或类似的东西。但这里重要的一点是,如果条件不满足,则阻止所有测试运行。 【参考方案1】:

如何创建一个 jUnit 规则来处理它?特别是验证者规则。 https://github.com/junit-team/junit4/wiki/rules#verifier-rule

Verifier 是 ErrorCollector 等规则的基类,它可以转 如果验证检查失败,则将测试方法传递给失败的测试。

private static String sequence;

public static class UsesVerifier 
  @Rule
  public final Verifier collector = new Verifier() 
    @Override
    protected void verify() 
      sequence += "verify ";
    
  ;

  @Test
  public void example() 
    sequence += "test ";
  

  @Test
  public void verifierRunsAfterTest() 
    sequence = "";
    assertThat(testResult(UsesVerifier.class), isSuccessful());
    assertEquals("test verify ", sequence);
  


【讨论】:

【参考方案2】:

您是否尝试过 System.exit(-1) 或 System.exit(0) ?根据您要检查的情况,其中之一应该可以满足您的目的。你可以阅读更多关于他们的信息here。

【讨论】:

以上是关于如何让浓缩咖啡测试在特定条件下失败的主要内容,如果未能解决你的问题,请参考以下文章

浓缩咖啡测试失败,进度对话框未从顶部删除

我想针对特定的构建类型运行单元测试和浓缩咖啡测试用例

如何在我的浓缩咖啡测试中通过 id 查看?

带有“hasBackground”的浓缩咖啡测试

指纹读取器浓缩咖啡测试

手机睡着的浓缩咖啡测试