我正在嘗試學習Mockito和TDD。Mockito測試檢查是否啓用藍牙
我有演示用的方法:
@Override
public void startScanning() {
if (isLocationPermissionGranted() && isBluetoothEnabled()) {
mPresenterView.onStartScanBtnClick();
} else if (!isBluetoothEnabled()) {
mPresenterView.displayDialogRequestingBluetooth();
} else if (!isLocationPermissionGranted()) {
mPresenterView.displayDialogRequestingPermission();
}
}
@Override
public boolean isLocationPermissionGranted() {
return false;
}
@Override
public boolean isBluetoothEnabled() {
return false;
}
問題是如何測試使用的Mockito Roboelectric或瓦特/電子底部2點的方法。
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
mScanningPresenter = new ScanningPresenter(mView);
mockBluetoothAdapter = PowerMockito.mock(BluetoothAdapter.class);
}
@Test
public void shouldPassPowerMock() {
assertEquals(true, mockBluetoothAdapter != null);
}
@Test
public void shouldDisplayBluetoothRequestWhenDisabled() {
mScanningPresenter.startScanning();
PowerMockito.when(!mockBluetoothAdapter.isEnabled()).thenReturn(false);
verify(mView).displayDialogRequestingBluetooth();
}
我加入PowerMock和創建的測試,以確保它的工作^^和我加入測試,顯示我想要做什麼,但不知道我的想法是如何尚未
將此接口方法作爲演示者中的受保護方法並創建MockingClass。或者創建單獨的接口幫助器並對其進行嘲弄。
我對任何清潔解決方案/主張都抱有開放態度。
該死。超級好的迴應。 「謝謝你,我的主人」 – Esperanz0