Ich versuche, Mockito und TDD zu lernen.Mockito Test überprüfen, ob Bluetooth aktiviert ist
Ich habe Moderator mit Methoden:
@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;
}
Frage ist, wie ich 2 Methoden, die auf dem Boden Mockito Roboelectric oder w/e mit testen.
@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();
}
Ich habe PowerMock und erstellten Test sicher zu sein, es funktioniert ^^ und ich hinzufüge, Test, der zeigt, was ich tun wollen, aber nicht wissen, wie noch
Meine Idee ist, diese Schnittstelle Methoden als geschützte Methode in Presenter zu machen und MockingClass zu erstellen. Oder Erstelle einen separaten Interface-Helfer und spotte ihn.
Ich bin offen für jede saubere Lösungen/Vorschläge.
Verdammt. Super gute Antwort. "Danke, mein Meister" – Esperanz0