首页 > 解决方案 > 带有 Spock 的 PowerMockito:无法从 java.util.concurrent 模拟类

问题描述

我需要从java.util.concurrent模拟Executors。我的代码如下:

@RunWith(PowerMockRunner.class)
@PowerMockRunnerDelegate(Sputnik.class)
@PrepareForTest([Executors.class, ClassThatCallsExecutors.class])
class WorkerManagerSpec extends Specification {
ExecutorService executorService
def "...."() {
        when:"...."
            PowerMockito.mockStatic(Executors.class)
 PowerMockito.when(Executors.newFixedThreadPool(2)).thenReturn(executorService)
    }
}

但我收到power-mockito 版本 1.7.4 的以下错误

> org.mockito.exceptions.misusing.MissingMethodInvocationException:
> [Ljava.lang.Object;@6bea52d4 when() requires an argument which has to
> be 'a method call on a mock'.

有什么办法可以解决这个问题?我怀疑存在一些依赖性问题。

标签: javagroovymockitospockpowermock

解决方案


推荐阅读