0

有可能有这样的东西吗?使用 Android/Robotium 测试框架或任何其他解决方案

public void testAll() throws Exception {
    test_001_LoginActivity();
    test_002_MainActivity();
}

public void test_001_LoginActivity() throws Exception {
    startActivity();
    test_001_LoginActivity_001_emptyUsername();
    test_001_LoginActivity_002_emptyPassword();
    test_001_LoginActivity_003_incorrectValues();
    test_001_LoginActivity_004_correctValues(); // MainActivity is opened on success
}

public void test_002_MainActivity() throws Exception {
    test_002_MainActivity_001_profile();
    test_002_MainActivity_002_list();
    test_002_MainActivity_003_logout();
}

这个想法是在不重新创建活动的情况下拥有test_001_LoginActivity()test_002_MainActivity()包含所有相应的活动测试。并显示这样的结果:

test_001_LoginActivity() - OK
--->test_001_LoginActivity_001_emptyUsername() - OK
--->test_001_LoginActivity_002_emptyPassword() - OK
--->test_001_LoginActivity_003_incorrectValues() - OK
--->test_001_LoginActivity_004_correctValues() - OK

test_002_MainActivity() - NOK
--->test_002_MainActivity_001_profile() - OK
--->test_002_MainActivity_002_list() - NOK
--->test_002_MainActivity_003_logout() - OK

这意味着所有测试LoginActivity都成功通过;test_002_MainActivity_002_list()测试失败MainActivity,但test_002_MainActivity_003_logout()测试通过(因为未重新创建活动)

我是测试新手,所以也许我弄错了,并且测试总是针对全新的活动实例执行?

4

1 回答 1

0

如果您重命名所有 test_00X_METHOD 方法,那么您尝试做的事情可能是可能的,因为目前它会变得一团糟,因为方法之前的“test”前缀对 jUnit 框架具有特殊含义 - 除此之外,所有方法都将由您从 testAll() 执行此外,所有方法都将在稍后单独执行,因为 jUnit 将所有带有“test”前缀的方法作为单独的测试用例运行,甚至在这些方法之间重新启动应用程序。因此,如果您丢弃所有“测试”前缀但保留它以供 testAll() 使用,它应该可以正常工作。而且您不需要在 test_001_Lo​​ginActivity() 开始时使用“startActivity()”方法,因为 Activity 是自动启动的 - 哪个活动?您作为类型参数传递给此类的活动:http: //developer.android。

我希望这个答案对你有用。

Krzysiek,Bitbar 软件工程师

于 2013-02-08T12:51:00.023 回答