Android Robolectric getNextStartedActivity始终返回启动器活动
我试图测试在我的Android应用程序中调用一个简单的方法是否会启动另一个活动Android Robolectric getNextStartedActivity始终返回启动器活动,android,robolectric,robolectric-gradle-plugin,Android,Robolectric,Robolectric Gradle Plugin,我试图测试在我的Android应用程序中调用一个简单的方法是否会启动另一个活动getNextStartedActivity始终返回启动器活动 以下是测试: @Test public void clickingButton_shouldStartNextActivity() throws Exception { CurrentActivity activity = Robolectric.setupActivity(CurrentActivity.class); activity.
getNextStartedActivity
始终返回启动器活动
以下是测试:
@Test
public void clickingButton_shouldStartNextActivity() throws Exception {
CurrentActivity activity = Robolectric.setupActivity(CurrentActivity.class);
activity.startNextActivity();
Intent expectedIntent = new Intent(activity, NextActivity.class);
assertEquals(expectedIntent, Shadows.shadowOf(activity).getNextStartedActivity());
}
下面是CurrentActivity中的startNextActivity方法:
public void startNextActivity() {
startActivity(new Intent(this, NextActivity.class));
}
当我运行测试时,我得到LoginActivity(launcher活动)作为实际结果。以下是AndroidManifest.xml中的LoginActivity:
<activity
android:name=".LoginActivity"
android:noHistory="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
你能分享下一个活动的代码吗?也许有什么东西叫LoginActivity
谢谢你的提示@EugenMartynov!如果共享首选项中没有保存api密钥,我将扩展activity类以将用户重定向到登录页面。将api密钥保存到测试中的共享首选项解决了这个问题。