2017-11-08 10 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 
        } 
    } 
    
  • 또는, 당신은 정말 당신이 TestName Rule 다음과 같이 (JUnit을 4.7부터) 사용할 수의 JUnit의 @After를 사용하려면 :

    @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() { 
    
    }