目標は、ユニットテストを実行するときにInputReaderクラスのreadInputメソッドを特定の値に戻す方法です。私は以下のコードを実行すると、私が手:このモックはどうやって作れますか?
モックが機能しなかったことを意味し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の模擬インスタンスではなく別のインスタンスです。 –