2017-11-08 6 views
1

私はEspressoを使用してUIテストを作成しています。いくつかのテストケースでは、スクリプトが失敗した場合の状態をリセットするために、特定の後のステップを呼びたいと思います。特定のJUnitテストケースで@Afterを実行するには?

単一のJUnitテストケース(@Test)に@Afterステップを実行する方法はありますか? 私が考えることができる唯一の解決策は、別のテストクラスを作ることです。しかし、テストケースを同じテストクラスにグループ化したいと思います。

答えて

1

それは少し奇妙に聞こえるん。あなたはこの後の行動をする対象の単一のテストに/最後に試して追加することができ

  • を)けど...。たとえば、次のように

    @Test 
    public void testA() { 
        try { 
         // the body of testA 
        } finally { 
         // apply the 'after' behaviour for testA 
        } 
    } 
    
  • それとも、あなたが本当にのJUnitの@Afterを使用したい場合は、以下のように、あなたは(JUnitの4.7以降)TestName Ruleを使用することができます。

    @Rule 
    public TestName testName = new TestName(); 
    
    @After 
    public void conditionalAfter() { 
        if ("testB".equals(testName.getMethodName())) { 
         System.out.println("apply the 'after' behaviour for testB"); 
        } 
    } 
    
    @Test 
    public void testA() { 
    
    } 
    
    @Test 
    public void testB() { 
    
    } 
    
関連する問題