Tôi đã bị kẹt ở đây một lúc. Sau khi tìm kiếm giờ, tôi thấy repo github này: https://github.com/kriegaex/Spock_PowerMock.
Tôi đã thử thêm một PowerMockRule về cơ bản đã cho phép tôi sử dụng PowerMock cùng với Spock. Tôi phải thêm những phụ thuộc này. Phiên bản tại 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>
Lớp học của tôi trông như thế này:
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!"
}
}
Dưới đây là một tài nguyên: https://github.com/jayway/powermock/wiki/powermockrule
Hey, bạn tìm thấy repo của tôi và lưu tôi từ trả lời này một mình. :-) – kriegaex
@kriegaex bạn đã viết nó. Tôi gần như đã từ bỏ Spock và PowerMock.Thanks để công khai repo của bạn! :) – juanpaolo
@Avinash: Bạn nên chấp nhận câu trả lời của juanpaolo thay vì câu trả lời của riêng bạn rằng nó không hoạt động. Tôi nghĩ anh ấy xứng đáng. – kriegaex