无法监视ActivityInstrumentationTestCase2中的Android活动
我试图监视一个无法监视ActivityInstrumentationTestCase2中的Android活动,android,testing,android-activity,mockito,Android,Testing,Android Activity,Mockito,我试图监视一个活动,但它给了我以下异常: java.lang.AbstractMethodError: abstract method "boolean org.mockito.internal.invocation.AbstractAwareMethod.isAbstract()" at org.mockito.internal.invocation.InvocationImpl.callRealMethod(InvocationImpl.java:109) at org.mockito.in
活动
,但它给了我以下异常:
java.lang.AbstractMethodError: abstract method "boolean org.mockito.internal.invocation.AbstractAwareMethod.isAbstract()"
at org.mockito.internal.invocation.InvocationImpl.callRealMethod(InvocationImpl.java:109)
at org.mockito.internal.stubbing.answers.CallsRealMethods.answer(CallsRealMethods.java:41)
at org.mockito.internal.handler.MockHandlerImpl.handle(MockHandlerImpl.java:93)
at org.mockito.internal.handler.NullResultGuardian.handle(NullResultGuardian.java:29)
at org.mockito.internal.handler.InvocationNotifierHandler.handle(InvocationNotifierHandler.java:38)
at com.google.dexmaker.mockito.InvocationHandlerAdapter.invoke(InvocationHandlerAdapter.java:49)
at WaitForCardActivity_Proxy.isRegisterActivated(WaitForCardActivity_Proxy.generated)
代码如下:
@RunWith(AndroidJUnit4.class)
public class WaitForCardActivityTests extends ActivityInstrumentationTestCase2<WaitForCardActivity> {
@Before
@Override
public void setUp() throws Exception {
super.setUp();
injectInstrumentation(InstrumentationRegistry.getInstrumentation());
waitForCardActivity = spy(getActivity());
when(waitForCardActivity.isRegisterActivated()).thenReturn(true);
}
...
}
另请注意:我不能使用Robolectric,因为我使用的是
密码
s,在使用Robolectric运行时会出现问题。Spy活动
:
Activity activity = spy(Activity.class);
更新:
就你而言:
WaitForCardActivity activity = spy(WaitForCardActivity.class);
when(activity.isRegisterActivated()).thenReturn(true);
assertTrue(activity.isRegisterActivated());
这并没有解决我的问题。引发了相同的异常。请检查我的更新。另外,我使用的是
RobolectrictTestRunner
,而您使用的是AndroidJUnit4
,但它不应该影响对象spy
。还有一件事:spy
在ActivityInstrumentationTestCase2
测试用例中使用Activity
。您必须用于单元测试。我建议您用于单元测试目的。
WaitForCardActivity activity = spy(WaitForCardActivity.class);
when(activity.isRegisterActivated()).thenReturn(true);
assertTrue(activity.isRegisterActivated());