有可能为Android编写复杂的功能测试吗?

有可能为Android编写复杂的功能测试吗?,android,junit,functional-testing,android-testing,Android,Junit,Functional Testing,Android Testing,有可能有这样的东西吗?使用Android/Robotium测试框架或任何其他解决方案 public void testAll() throws Exception { test_001_LoginActivity(); test_002_MainActivity(); } public void test_001_LoginActivity() throws Exception { startActivity(); test_001_LoginActivity_

有可能有这样的东西吗?使用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\u 001\u LoginActivity()
test\u 002\u main activity()
包含所有相应的活动测试,而无需重新创建活动。要得到这样的结果:

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
这意味着
后勤活动
的所有测试均成功通过<代码>测试\u 002\u main活动\u 002\u列表()测试失败,但
测试\u 002\u main活动\u 003\u注销()
测试通过(因为未重新创建活动)


我是测试新手,所以可能我弄错了,测试总是针对一个全新的活动实例执行的?

如果您重命名所有的测试方法,您可能会尝试执行这些测试,因为当前它会变得一团糟,因为“test”方法前的前缀对jUnit框架有特殊的意义-除此之外,所有方法都将由您从testAll()执行,并且所有方法将在jUnit运行所有带有“test”前缀的方法作为单独的测试用例时单独执行,应用程序甚至会在这些方法之间重新启动。因此,如果您扔掉所有“test”前缀,但将其保留在testAll()中,它应该可以正常工作。您不需要在test_001_LoginActivity()开始时使用“startActivity()”方法,因为活动是自动启动的-哪个活动?作为类型参数传递给此类的活动:

我希望这个答案对你有用

Krzysiek,
Bitbar软件工程师

对于您建议的解决方案,我在日志中只获得一个通过标记-对于
testAll
方法。我希望所有的测试都显示为单独的markshmmm,所以您尝试做的不适合jUnit体系结构,因为它单独运行所有的“test…”方法并显示结果。当然,testAll中的“test..”方法也将运行,但由您手动运行,它们的结果将与testAll相同,然后testAll中的这些方法也将单独运行。所以可能使用断言来代替“test…”前缀?结果将是一个测试,但如果某物将失败,你会知道到底是什么,在哪里…或者可能有解决方案,但我不知道。。。