如何在其他测试用例类中调用testcase类?

时间:2012-03-10 01:55:37

标签: android junit

我在创建JUnit Test Automation时遇到问题。

我的项目有很多活动(其他活动中有一些活动)。 所以我为每个活动创建了测试用例。但问题是如何在其他测试用例中调用测试用例(如其他活动中的活动)。

任何人都可以给我一些想法吗?

感谢.....

2 个答案:

答案 0 :(得分:0)

您的测试应该生活在与您的活动不同的不同项目中。 然后,测试运行器(通常为InstrumentationTestRunner)将能够使用instrospection发现并运行您的测试用例。

答案 1 :(得分: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);
    }
}