Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.5k views
in Technique[技术] by (71.8m points)

junit - Mockito: mocked Jdbc template.queryForObject to return Timestamp

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

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
Waitting for answers

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...