2012-03-10 18 views
0

JUnitテスト自動化の作成に問題があります。他のテストケースクラスの中でtestcaseクラスを呼び出す方法は?

私のプロジェクトには多くのアクティビティがあります(他のアクティビティの中にいくつかのアクティビティがあります)。 私はそれぞれのアクティビティのテストケースを作成します。しかし、問題はどうすれば他のテストケース(他のアクティビティの中のアクティビティのようなもの)の中でテストケースを呼び出すことができますか?

誰でも私に理想を与えることができますか?

ありがとう.....

答えて

0

あなたのテストは、あなたのアクティビティではない別のプロジェクトに存在する必要があります。 テストランナーは通常InstrumentationTestRunnerで、instrospectionを使用してテストケースを検出して実行できます。

0

免責事項:これは非常に面倒なことがあります。別のテストケースを生成するために1つのテストケースが必要な場合は、おそらくもっと良い方法があります。

JUnitはクラスで動作します。実行時にテストを作成する場合は、実行時にクラスを作成する必要があります。ここでは、メソッドspecializedTesterは、匿名サブクラスを作成します。getInstance()は、テストのために特殊なアクティビティオブジェクトを返します。

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

関連する問題