目标是模拟方法readInput InputReader类,以在我运行单元测试时返回特定值。如果我运行下面的代码,那么我得到:你如何做这个模拟工作?
java.lang.AssertionError:
Expected :1
Actual :0
这意味着该模拟不起作用。我如何使它在Java中工作?
package foo;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
public class InputTest {
private int getInput() {
return new InputReader().readInput();
}
@Test
public void getInputTest() throws Exception {
InputReader sc = mock(InputReader.class);
when(sc.readInput()).thenReturn(1);
assertEquals(1, getInput());
}
}
class InputReader {
int readInput() {
return 0;
}
}
你正在创建一个模拟InputReader,但是你调用的方法(getInput())不使用那个模拟实例。它使用'new InputReader()'。另一个实例是另一个,而不是模拟的InputReader实例。 –