使用影子类Robolectric Android抑制超级方法调用

我想在我的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);
}
}

此影子类无法解决问题。我有什么想念的吗?请咨询。

st205702 回答:使用影子类Robolectric Android抑制超级方法调用

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3152234.html

大家都在问