如何在 ActivityInstrumentationTestCase2 或 InstrumentationTestCase 中启动第二个(模拟)活动?
我的问题是这样的:
Intent intent = new Intent(getInstrumentation().getContext(), MyMock.class);
myMock = (MyMock) getInstrumentation().startActivitySync(intent);
...导致错误“intent in process ... resolves to different process ...test”。对 Intent 使用 getTargetContext() 会导致“无法解析 Intent 的活动”,因为我的模拟类不是应用程序包的一部分。
08-07 19:38:25.822: INFO/TestRunner(2656): ----- begin exception -----
08-07 19:38:25.822: INFO/TestRunner(2656): java.lang.RuntimeException: Unable to resolve activity for: Intent { cmp=com.cocktails/.test.recipes.RecipeBookMock }
08-07 19:38:25.822: INFO/TestRunner(2656): at android.app.Instrumentation.startActivitySync(Instrumentation.java:447)
08-07 19:38:25.822: INFO/TestRunner(2656): at com.cocktails.test.recipes.RecipeUpdaterTest.testNewRecipe(RecipeUpdaterTest.java:55)
08-07 19:38:25.822: INFO/TestRunner(2656): at java.lang.reflect.Method.invokeNative(Native Method)
08-07 19:38:25.822: INFO/TestRunner(2656): at java.lang.reflect.Method.invoke(Method.java:521)
08-07 19:38:25.822: INFO/TestRunner(2656): at android.test.InstrumentationTestCase.runMethod(InstrumentationTestCase.java:191)
08-07 19:38:25.822: INFO/TestRunner(2656): at android.test.InstrumentationTestCase.runTest(InstrumentationTestCase.java:181)
08-07 19:38:25.822: INFO/TestRunner(2656): at junit.framework.TestCase.runBare(TestCase.java:127)
08-07 19:38:25.822: INFO/TestRunner(2656): at junit.framework.TestResult$1.protect(TestResult.java:106)
08-07 19:38:25.822: INFO/TestRunner(2656): at junit.framework.TestResult.runProtected(TestResult.java:124)
08-07 19:38:25.822: INFO/TestRunner(2656): at junit.framework.TestResult.run(TestResult.java:109)
08-07 19:38:25.822: INFO/TestRunner(2656): at junit.framework.TestCase.run(TestCase.java:118)
08-07 19:38:25.822: INFO/TestRunner(2656): at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:164)
08-07 19:38:25.822: INFO/TestRunner(2656): at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:151)
08-07 19:38:25.822: INFO/TestRunner(2656): at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:425)
08-07 19:38:25.822: INFO/TestRunner(2656): at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1520)
08-07 19:38:25.832: INFO/TestRunner(2656): ----- end exception -----