我想問一下關於具有BluetoothDevice
變量的類的單元測試。安卓單元測試:模擬BluetoothDevice並寫入包裹
我的對象是一個簡單的對象,它包含一些原始變量和一個BluetoothDevice變量。我的對象也是可以parcelable的。
最終,我的代碼在移動設備上完全正常工作,但運行我的單元測試時出現奇怪的錯誤。
我嘲笑BluetoothDevice類在測試類,如下所示:
@RunWith(RobolectricTestRunner.class)
@Config(manifest=Config.NONE)
public class BluetoothDeviceTest {
@Mock
BluetoothDevice device1;
@Before
public void initMocks(){
MockitoAnnotations.initMocks(this);
when(device1.getAddress()).thenReturn("01:02:03:04:05:06");
when(device1.getName()).thenReturn("device767b1");
when(device1.getBondState()).thenReturn(BOND_NONE);
}
}
以我對象其他原語中使用:
我使用
out.writeParcelable(mBluetoothDevice,0);
內部@Override public void writeToParcel(Parcel out, int flags)
方法。我使用
mBluetoothDevice = in.readParcelable(BluetoothDevice.class.getClassLoader());
裏面protected MyObject(Parcel in)
構造函數。
,測試我的對象實例的瓜分單元測試失敗,異常 java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
。只有單元測試是奇怪的。
我懷疑這是因爲我的模擬的BluetoothDevice
變量在包裹中比正常實例中的要短,並且包裹中數據字段的順序變得混亂。
有沒有人測試過一個嘲諷BluetoothDevice
,可以給我一些提示?謝謝