我想在我的activity的onResume方法中测试方法调用。我的活动正在扩展AppCompatactivity。
super.onResume方法调用在测试运行时引发异常。这是错误:
java.lang.Exception:主循环程序已将未执行的可运行对象排队。这可能是测试失败的原因。您可能需要shadowOf(getMainLooper())。idle()调用。
因此,我决定使用Shadow类抑制onResume超级方法调用。
阴影类代码:
@Implements(Fragmentactivity.class)
public class ShadowFragmentactivity extends Shadowactivity {
@Implementation
public void onResume() {
}
}
这是我的考试班:
@Config(sdk = 24,application = TestApplication.class,shadows={ShadowFragmentactivity.class})
@RunWith(RobolectricTestRunner.class)
public class LoginactivityTest {
//------code-----//
@Test
public void shouldInvokeTrackingOnResume(){
Loginactivity loginactivity = Robolectric.buildactivity(Loginactivity.class).get();
loginactivity = spy(loginactivity);
loginactivity.onResume();
verify(mockAdobe).track(loginactivity);
}
}
此影子类无法解决问题。我有什么想念的吗?请咨询。