我正试图Activity在浓缩咖啡中推出.问题是我想把嘲笑的额外内容放到Intent我用来启动它的地方Activity.这是一个例子.
@RunWith(AndroidJUnit4.class)
public final class NiceActivityTester
{
@Rule
public final ActivityTestRule<NiceActivity> activityRule = new ActivityTestRule<>(NiceActivity.class, true, false);
@Test
public void justStartPlease() {
NiceThing niceThing = Mockito.mock(NiceThing.class);
Mockito.when(niceThing.getName()).thenReturn("Nice!");
Intent intent = new Intent(InstrumentationRegistry.getTargetContext(), NiceActivity.class);
intent.putExtra("NICE_THING", niceThing);
activityRule.launchActivity(intent);
}
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,解组Parcelable失败了.
java.lang.RuntimeException: Unable to start activity ComponentInfo{app.application/app.application.activity.NiceActivity}: android.os.BadParcelableException: ClassNotFoundException when unmarshalling: NiceThing_Proxy
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
at android.app.ActivityThread.access$800(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at …Run Code Online (Sandbox Code Playgroud) android unit-testing android-intent android-testing android-espresso