小编Eri*_*ari的帖子

Spock 模拟私有变量

我想知道如何使用 Groovy/Spock 模拟类中的某些私有变量。假设我们有这样的代码:

public class Car {
    private Engine engine;

    public void drive(){
        System.out.println("test");
        if (engine.isState()) {
            // Do something
        } else {
           // Do something
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在 Mockito 中我可以写:

@Mock
private Engine engine;

@InjectMocks
private Car car = new Car();

@Test
public void drive() {
    when(engine.isState()).thenReturn(true);
    car.drive();
}
Run Code Online (Sandbox Code Playgroud)

但我不知道如何在 Spock 中做同样的事情。@InjectMocksSpock 中相当于什么?

groovy mockito spock

7
推荐指数
1
解决办法
1万
查看次数

标签 统计

groovy ×1

mockito ×1

spock ×1