2012-03-10 3 views
0

JUnit 테스트 자동화 생성에 문제가 있습니다.다른 testcase 클래스에서 testcase 클래스를 호출하는 방법은 무엇입니까?

내 프로젝트에는 많은 활동이 있습니다 (다른 활동 안에 일부 활동). 그래서 각 활동에 대한 테스트 케이스를 만듭니다. 하지만 문제는 다른 테스트 케이스 (예 : 다른 액티비티 내부의 액티비티) 내부에서 테스트 케이스를 호출하는 방법입니다.

아무도 나에게 어떤 이상을 줄 수 있습니까?

감사합니다 .....

답변

0

테스트는 활동이 아닌 다른 프로젝트에서 진행되어야합니다. 그런 다음 테스트 러너는 대개 InstrumentationTestRunner이며, instrospection을 사용하여 테스트 케이스를 발견하고 실행할 수 있습니다.

0

면책 조항 : 이것은 매우 지저분해질 수 있습니다. 다른 테스트 케이스를 생성하기 위해 하나의 테스트 케이스가 필요한 경우, 아마도 더 나은 방법이있을 것입니다.

JUnit은 클래스에서 작동합니다. 런타임에 테스트를 작성하려면 런타임에 클래스를 작성해야합니다. 여기에서 specializedTester 메서드는 익명의 하위 클래스를 만듭니다. getInstance()은 테스트를 위해 특수화 된 Activity 개체를 반환합니다.

public abstract class ActivityTestCase extends TestCase { 

    public abstract Activity getInstance(); 

    public static Class specializedTester(final String specialty) { 
     return new ActivityTestCase() { 
      public Activity getInstance() { 
       return new Activity(specialty); 
      } 
     }; 
    } 

    public void testChildActivities() { 
     Activity activity = getInstance(); 
     for(Activity a : activity.children()) { 
      // "check ripeness", "bargain hunt", "check out", etc 
      Class c = specializedTester(a.specialty); 
      suite.addTestSuite(c); 
     } 
    } 

    static TestSuite suite; 

    public static void main(String[] args) { 
     suite = new TestSuite(ActivityTestCase.specializedTester("buy groceries")); 
     TestRunner.run(suite); 
    } 
} 
+0

모든 답변 주셔서 감사합니다 ... 지금 확인하겠습니다 .... – Zana

관련 문제