我正在尝试学习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