Я пытаюсь протестировать закрытый метод, но не могу получить полное покрытие кода и застрял в методе.Это метод, который я пытаюсь проверить наблюдателем нарушения, но он не проверяет и не охватывает весь охват code
:
private ViolationObserver.ViolationListener mViolationListener = new ViolationObserver.ViolationListener() {
public void onActivation(ViolationObserver source, boolean active) {
boolean activeBefore = mSpeedAlertActive && mGeoFenceActive;
if (source == mSpeedAlertObserver) {
mSpeedAlertActive = active;
} else if (source == mGeoFenceObserver) {
mGeoFenceActive = active;
}
boolean activeNow = mSpeedAlertActive && mGeoFenceActive;
if (!activeBefore && activeNow) {
mMonitoringStateReporter.publishMonitoringState(true);
} else if (activeBefore && !activeNow) {
mMonitoringStateReporter.publishMonitoringState(false)
Это модульный тест:
public void testOnActivation_ViolationObserver() {
PowerMockito.mockStatic(ViolationObserver.class);
final ViolationObserver.ViolationListener listener = Whitebox.getInternalState(mValetAlert, "mViolationListener");
final SpeedAlertObserver observer = Whitebox.getInternalState(mValetAlert,"mSpeedAlertObserver");
final GeoFenceObserver observer2 = Whitebox.getInternalState(mValetAlert, "mGeoFenceObserver");
final MonitoringStateReporter observer3= Whitebox.getInternalState(mValetAlert, "mMonitoringStateReporter");
observer3.publishMonitoringState(true);
observer3.setMonitoringState(VALET_ALERT_ID, true);
when(PreferencesUtils.readMap(mPreferencesMock, "GV")).thenReturn(Collections.EMPTY_MAP);
when(PreferencesUtils.readMap(mPreferencesMock, "SV")).thenReturn(Collections.EMPTY_MAP);
final GeoFencingDefinition definition = createGeoFencingDefinition();
final SpeedAlertDefinition definition2=createSpeedAlertDefinition();
GeoFenceObserver gfo =new GeoFenceObserver("GeoFence",null, null, null,createGeoFencingDefinition(),null,7867L,false,false,10,10L,false,false);
SpeedAlertObserver sao =new SpeedAlertObserver("sao",null, null, null,createSpeedAlertDefinition(),null,7867L,false,10,10L,false,false);
sao.addViolationListener(listener);
gfo.addViolationListener(listener);
Whitebox.setInternalState(mValetAlert,"mSpeedAlertActive",true);
Whitebox.setInternalState(mValetAlert,"mGeoFenceActive",true);
Whitebox.setInternalState(mValetAlert,"mMonitoringStateReporter",mMonitoringStateReporterMock);
Whitebox.setInternalState(mValetAlert,"mSpeedAlertActive",false);
Whitebox.setInternalState(mValetAlert,"mGeoFenceActive",false);
Whitebox.setInternalState(mValetAlert,mMonitoringStateReporterMock);
listener.onActivation(sao,true);
listener.onActivation(gfo, true);