Codes to test:
String sql = "select lock_until from shedlock where NAME=?";
Timestamp lockUntil = jdbcTemplate.queryForObject(sql, new Object[] {taskname}, Timestamp.class);
test code:
private JdbcTemplate mockedJdbcTemplate;
@Before
public void setUp(){
mockedJdbcTemplate = Mockito.mock(JdbcTemplate.class);
Whitebox.setInternalState(shedlockUtil, "jdbcTemplate",mockedJdbcTemplate);
}
@Test
public void test(){
Timestamp timestamp = new Timestamp(System.currentTimeMillis());
Mockito.doReturn(timestamp).when(mockedJdbcTemplate).queryForObject(any(String.class), eq(String.class), any(Timestamp.class));
...
}
it looks like that mockto.doReturn(timestamp).when~ is not applied to the actual code. lockUntil has Null instead of current timestamp. Can anyone guide on this? probably parameters I passed to mockido.when are incorrect... so tried different options but can't figure out.
Thanks!
question from:
https://stackoverflow.com/questions/65894402/mockito-mocked-jdbc-template-queryforobject-to-return-timestamp 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…