我正在使用 roboelectric 测试我的 android 应用程序代码。作为其中的一部分,我想断言在应用程序上打开的下一个活动。
以前我使用以下代码:
Intent expectedIntent = new Intent(activity, EODCountActivity.class);
Intent actual = shadowOf(RuntimeEnvironment.application).getNextStartedActivity();
assertEquals(expectedIntent.getComponent(), actual.getComponent());
它工作得很好。但是当我切换到以下版本时,断言失败。
Intent intent = shadowOf(RuntimeEnvironment.application).getNextStartedActivity();
assertEquals(EODCountActivity.class, shadowOf(intent).getIntentClass());
这是我得到的结果:(如您所见,这两个java.lang.Class
对象具有相同的路径,但它们不相等)
java.lang.AssertionError: expected: java.lang.Class<class com.xyz.storeapp.activities.EODCountActivity> but was: java.lang.Class<class com.xyz.storeapp.activities.EODCountActivity>
Expected :java.lang.Class<class com.xyz.storeapp.activities.EODCountActivity>
Actual :java.lang.Class<class com.xyz.storeapp.activities.EODCountActivity>
同一个 java.lang.Class 对象有可能有不同的引用吗?