如何测试 @parcel 对象,就好像它们是跨活动发送的一样

How to test @parcel objects as if they were sent across activities

当我对@parcel 注释模型进行单元测试时,我得到了相同的对象(即使在使用 BundleIntent 时):

@Test public void parcel() {
    MyObject myObject = new MyObject("123");
    Parcelable parcelable = Parcels.wrap(myObject);
    MyObject in = Parcels.unwrap(parcelable);
    // myObject == in (same id)
}

如何模拟模型从一个 activity 传递到另一个并因此被重新创建的情况?

更新:可能需要使用 this

使用这个 file:

@Test public void parcel() {
    MyObject myObject = new MyObject("123");
    MyObject in = Parcels.unwrap(ParcelsTestUtil.wrap(myObject);
    assertNotEquals(myObject.hasCode(), in.hasCode())
}

测试需要 运行 和 Android 测试或 Robolectric 工件。