java - unit - android test module
使用Mockito核心創建最終課堂模擬? (1)
在github的例子中,我發現如何使用標準Mockito創建最終類的實例(BluetoothGatt.class):
...
@RunWith(RobolectricTestRunner.class)
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR2)
public class OnBoardingServiceTest {
private BluetoothGattCharacteristic characteristic;
private OnBoardingService service;
private BluetoothGattReceiver receiver = new BluetoothGattReceiver();
@Before public void initialise() {
BleDevice bleDevice = mock(BleDevice.class);
when(bleDevice.getType()).thenReturn(BleDeviceType.WunderbarMIC);
BluetoothGatt gatt = mock(BluetoothGatt.class);
...
但從Mockito常見問題 :
Mockito有什麼限制
- 需要Java 1.5+
- 不能嘲笑最後的課程
- ...
我檢查它是從標準的android-sdk的BluetoothGatt,所以它看起來像模擬最後一課。 現在我嘗試建立項目,肯定這個測試工作。 核心mockito如何使模擬最終課程? 而如果它的代碼最終不工作,你有什麼想法如何使安卓儀器測試的最終類的模擬? (我已經嘗試PowerMock )。 謝謝
Robolectric旨在創建和替代Android標準類的實現,包括最終的類和方法。 在引擎蓋下,它與PowerMockito非常相似,使用它自己的類加載器來建立一個有利於自己模擬的類路徑。
Robolectric中的Android類的模擬實現被稱為陰影 ,而圖書館是不完整的; 您可能需要創建一個適合您的需求的自定義陰影 。
使用Mockito進行方法調用可能並不容易,但是您可以使用Robolectric方法來獲取陰影的實例,並編寫將方法參數保存到實例中的陰影實現(等等)。