Ich war auch hier für eine Weile fest. Nachdem ich stundenlang gesucht hatte, sah ich dieses GitHub Repo: https://github.com/kriegaex/Spock_PowerMock.
Ich habe versucht, eine PowerMockRule hinzuzufügen, die es mir im Wesentlichen ermöglichte, PowerMock zusammen mit Spock zu verwenden. Ich musste diese Abhängigkeiten hinzufügen. Version ist 1.5.4
<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-module-junit4-rule</artifactId>
<version>${powermock.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-classloading-xstream</artifactId>
<version>${powermock.version}</version>
<scope>test</scope>
</dependency>
Meine Klasse sieht wie folgt aus:
import org.junit.Rule
import org.mockito.Mockito
import org.powermock.api.mockito.PowerMockito
import org.powermock.core.classloader.annotations.PrepareForTest
import org.powermock.modules.junit4.rule.PowerMockRule
import spock.lang.Specification
@PrepareForTest([SomeStaticClass.class])
public class FlightFormSpec extends Specification {
@Rule PowerMockRule powerMockRule = new PowerMockRule();
def "When mocking static"() {
setup :
PowerMockito.mockStatic(SomeStaticClass.class)
when :
Mockito.when(SomeStaticClass.someStaticMethod()).thenReturn("Philippines!");
then :
SomeStaticClass.someStaticMethod() == "Philippines!"
}
}
Hier ist eine andere Ressource ist: https://github.com/jayway/powermock/wiki/powermockrule
Hey, du hast mein Repo gefunden und mich davor bewahrt, dieses eine selbst zu beantworten. :-) – kriegaex
@kriegaex du hast es geschrieben. Ich habe fast mit Spock und PowerMock aufgehört. Vielen Dank für Ihre Repo-Veröffentlichung! :) – juanpaolo
@Avinash: Du solltest die Antwort von Juanpaolo anstelle deiner eigenen annehmen, dass es nicht funktioniert. Ich denke, er hat es verdient. – kriegaex