我想知道如何使用 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 中相当于什么?