Java 使用Robotium进行生命周期测试:终止和重新启动活动
如何重新启动使用Robotium的Java 使用Robotium进行生命周期测试:终止和重新启动活动,java,android,robotium,android-testing,Java,Android,Robotium,Android Testing,如何重新启动使用Robotium的solo.goBack()结束的活动? 以下情况不会重新启动活动:(测试正常完成) 如何重新启动由Solo.goBack()结束的活动 那么问题呢 解决Robotium中两个活动之间的更改,而不是解除固定和重新启动 处理一项服务,而不是一项活动(且未答复) 询问如何手动重新启动活动,但回答方式不同 最小示例 要复制这样的最小测试,请创建一个项目及其测试项目: android create project -t 1 -p testRestart -k c
solo.goBack()
结束的活动?
以下情况不会重新启动活动:(测试正常完成)
如何重新启动由Solo.goBack()
结束的活动
那么问题呢
- 解决Robotium中两个活动之间的更改,而不是解除固定和重新启动
- 处理一项服务,而不是一项活动(且未答复)
- 询问如何手动重新启动活动,但回答方式不同
android create project -t 1 -p testRestart -k com.testRestart -a testactivity
cd testRestart
mkdir tests
cd tests
android create test-project -m .. -p .
将文件复制到tests/libs
文件夹。
将此代码粘贴到文件testactivityTest.java
中:
package com.testRestart;
import android.test.ActivityInstrumentationTestCase2;
import com.robotium.solo.Solo;
public class testactivityTest extends ActivityInstrumentationTestCase2<testactivity> {
private Solo solo;
protected void setUp() throws Exception {
solo = new Solo(getInstrumentation(), getActivity());
}
public void tearDown() throws Exception {
solo.finishOpenedActivities();
}
public testactivityTest() {
super("com.testRestart", testactivity.class);
}
public void testDestroyAndRestart() {
solo.goBack();
try {
// recreate activity here
runTestOnUiThread(new Runnable() {
public void run() {
getInstrumentation().callActivityOnCreate(getActivity(),
null);
getInstrumentation().callActivityOnStart(getActivity());
getInstrumentation().callActivityOnResume(getActivity());
}});
} catch ( Throwable t ) {
throw new RuntimeException(t);
}
}
}
再次提出问题:如何重新启动一个以Solo.goBack()
结束的活动?正如@IHeartAndroid在to中所说的(我以前没有看到过它,在对“”的评论中有@Flavio Capaccio的链接):
工作。这是中的一个函数
(如果你想对这个答案投赞成票,也要投反对票)
package com.testRestart;
import android.test.ActivityInstrumentationTestCase2;
import com.robotium.solo.Solo;
public class testactivityTest extends ActivityInstrumentationTestCase2<testactivity> {
private Solo solo;
protected void setUp() throws Exception {
solo = new Solo(getInstrumentation(), getActivity());
}
public void tearDown() throws Exception {
solo.finishOpenedActivities();
}
public testactivityTest() {
super("com.testRestart", testactivity.class);
}
public void testDestroyAndRestart() {
solo.goBack();
try {
// recreate activity here
runTestOnUiThread(new Runnable() {
public void run() {
getInstrumentation().callActivityOnCreate(getActivity(),
null);
getInstrumentation().callActivityOnStart(getActivity());
getInstrumentation().callActivityOnResume(getActivity());
}});
} catch ( Throwable t ) {
throw new RuntimeException(t);
}
}
}
ant debug install
adb shell am instrument -w -e class com.testRestart.testactivityTest com.testRestart.tests/android.test.InstrumentationTestRunner
launchActivity("com.testRestart", testactivity.class, null);