问题描述:
在进行Android UI测试时,调用context.startActivity()
方法没有起作用。
解决方法:
确保测试类继承自ActivityInstrumentationTestCase2
或ActivityTestRule
类。
在测试方法中,使用InstrumentationRegistry.getTargetContext()
方法获取目标上下文。
Context context = InstrumentationRegistry.getTargetContext();
Intent
创建要启动的Activity,并将其作为参数传递给context.startActivity()
方法。Intent intent = new Intent(context, YourActivity.class);
context.startActivity(intent);
完整示例代码:
import android.content.Context;
import android.content.Intent;
import androidx.test.InstrumentationRegistry;
import androidx.test.rule.ActivityTestRule;
import androidx.test.runner.AndroidJUnit4;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
@RunWith(AndroidJUnit4.class)
public class YourUITest {
@Rule
public ActivityTestRule mActivityRule = new ActivityTestRule<>(YourActivity.class);
@Test
public void testStartActivity() {
Context context = InstrumentationRegistry.getTargetContext();
Intent intent = new Intent(context, YourActivity.class);
context.startActivity(intent);
}
}
通过以上步骤,你应该能够在Android UI测试中成功调用context.startActivity()
方法。