Powermock + Mockito nicht funktioniert
Versuchen, Powermock, zu verhöhnen, aus einer statischen Methode auf SystemTray. Nicht sicher, warum dies nicht funktioniert. Ich habe das match von Powermock -> Mockito Versionen, und ich glaube, ich habe alle Folgen Sie die Schritte zum hinzufügen der rechten Anmerkungen und die korrekte Verwendung von PowerMock Verfahren zur Einstellung der statischen.
Die statische Methode auf SystemTray scheint aufgerufen zu werden, ohne die gekürzte Funktionalität durch die wenn().
Ich bin mischen Powermock und Mockito fordert hier, aber laut den docs ist das richtig.
package CommissionChecker;
import org.apache.commons.logging.Log;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.runners.MockitoJUnitRunner;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
import org.springframework.test.util.ReflectionTestUtils;
import java.awt.*;
import java.io.IOException;
import java.util.List;
import static org.mockito.Mockito.*;
import static org.powermock.api.mockito.PowerMockito.mockStatic;
@RunWith(PowerMockRunner.class)
@PrepareForTest(SystemTray.class)
public class DisplayManagerTest {
@Mock
Log logMock;
@Mock
Runner runnerMock;
@Test
public void display_manager_does_nothing_if_system_tray_is_not_supported() throws IOException, AWTException {
mockStatic(SystemTray.class);
when(SystemTray.isSupported()).thenReturn(false);
new DisplayManager(runnerMock);
verifyZeroInteractions(runnerMock);
}
}
Diese sind meine maven-Abhängigkeiten
<powermock.version>1.5.2</powermock.version>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-all</artifactId>
<version>1.9.5</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-junit4</artifactId>
<version>${powermock.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-api-mockito</artifactId>
<version>${powermock.version}</version>
<scope>test</scope>
</dependency>
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nur erforderlich, ändern Sie diese Zeile
zu
Gemäß dieser https://code.google.com/p/powermock/wiki/MockSystem
Hier ist ein einfaches Beispiel mit PowerMock:
Ich hatte das gleiche problem aber habe ich den import manuell das problem verschwunden.