私はMockitoとTDDを学ぼうとしています。ブルートゥースが有効になっているかどうかを確認するMockitoテスト
Iは方法とプレゼンタを有する:
@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またはW/Eを使用して、底部の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