我有最后一课需要模拟,所以我求助于 PowerMock。我发现 EasyMock 风格的语法不可读,所以我尝试使用 PowerMockito。
完全公开,我在 Spock 中这样做,这意味着我不能使用 PowerMock 跑步者,但我已经制定了规则,所以这个问题得到了解决。是的,我尝试过 Groovy 模拟,但它们无法处理 Java 最终类。
这是工作版本的草图:
@PrepareForTest([Final.class])
class MapperTest extends Specification {
@Rule PowerMockRule rule = new PowerMockRule()
def testIt() {
given:
def fin = PowerMock.createMock(Final.class)
...
这个版本,我从网上的例子中克隆出来的,炸弹:
@PrepareForTest([Final.class])
class MapperTest extends Specification {
@Rule PowerMockRule rule = new PowerMockRule()
def testIt() {
given:
def fin = PowerMockito.mock(Final.class)
...
我在运行时收到以下异常:
java.lang.NoClassDefFoundError: org/mockito/mock/MockName
at org.powermock.api.mockito.PowerMockito.mock(PowerMockito.java:143)
为此撕毁了我的头发。谢谢,如果你能帮忙!
更新:我在 JUnit 中试过这个,同样的问题。