有可能有这样的东西吗?使用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()
的{{1}}测试失败,但是MainActivity
测试已通过(因为未重新创建活动)
我是测试的新手,所以也许我弄错了,测试的目的是为了一个全新的活动实例?
答案 0 :(得分:0)
如果你重命名所有的test_00X_METHOD方法,你可能会尝试做什么,因为目前它会变得彻底混乱,因为在方法对jUnit Framework有特殊意义之前的“test”前缀 - 除了所有这些都将由你执行testAll()所有方法也将分别执行,因为jUnit运行带有“test”前缀的所有方法作为单独的测试用例,并且应用程序甚至在这些方法之间重新启动。因此,如果你丢弃所有“测试”前缀但保留testAll(),它应该可以正常工作。并且你不需要在test_001_LoginActivity()的开头使用“startActivity()”方法,因为Activity是自动启动的 - 哪个活动?您作为类型参数传递给此类的活动:http://developer.android.com/reference/android/test/ActivityInstrumentationTestCase2.html。
我希望这个答案对你有用。
Krzysiek, Bitbar软件工程师