1

我正在使用 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 对象有可能有不同的引用吗?

4

0 回答 0