Android 预期结果和实际结果是一样的,为什么它告诉我它们是不同的呢?

Android 预期结果和实际结果是一样的,为什么它告诉我它们是不同的呢?,android,Android,我今天使用了机器人,但是,我遇到了一些问题,我找不到解决方案 主要活动: public class MainActivity extends AppCompatActivity { private TextView textView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setConten

我今天使用了机器人,但是,我遇到了一些问题,我找不到解决方案

主要活动:

public class MainActivity extends AppCompatActivity {
private TextView textView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        textView=(TextView)findViewById(R.id.textView1);
        textView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent=new Intent(MainActivity.this,SecondActivity.class);
                startActivity(intent);
            }
        });
    }
}
维护活动测试:

@RunWith(RobolectricTestRunner.class)
@Config(constants = BuildConfig.class,sdk=21)
public class MainActivityTest {
    @Test
    public void testMainActivity() {
        MainActivity mainActivity = Robolectric.setupActivity(MainActivity.class);
        mainActivity.findViewById(R.id.textView1).performClick();
        Intent expectedIntent = new Intent(mainActivity, SecondActivity.class);
        ShadowActivity shadowActivity = Shadows.shadowOf(mainActivity);
        Intent actualIntent = shadowActivity.getNextStartedActivity();
        Assert.assertEquals(expectedIntent, actualIntent);
    }
}
错误消息:

java.lang.AssertionError: expected: android.content.Intent<Intent { cmp=com.example.wyb.test/.SecondActivity }> but was: android.content.Intent<Intent { cmp=com.example.wyb.test/.SecondActivity }>
Expected :android.content.Intent<Intent { cmp=com.example.wyb.test/.SecondActivity }> 
Actual   :android.content.Intent<Intent { cmp=com.example.wyb.test/.SecondActivity }>     
Process finished with exit code 255

我不明白为什么预期结果与实际结果相同,它仍然失败。

assertEquals
将在比较的对象上调用
equals
方法,但是
equals
Intent
上没有被覆盖,所以我假设它只是在进行对象引用比较

尝试使用来比较意图

Assert.assertTrue(actualIntent.filterEquals(expectedIntent));
如果
filterEquals
对您来说还不够(它会忽略额外的内容),请参阅

Assert.assertTrue(actualIntent.filterEquals(expectedIntent));