in my class namedJdbcTemplate is being used twice in single function to get different result. but mocking it only gives one result. how to prepare test case for it ?
my class:
public void Getsomething(){
Result1 = namedJdbcTemplate.queryForObject(
"SomeSQLString1", params, String.class);
Result2 = namedJdbcTemplate.queryForObject(
"SomeSQLString2", params, String.class);
Test Class:
@Test
public void getNewRecordsTest2(){
Mockito.when(namedJdbcTemplate.queryForObject(Mockito.anyString(), Mockito.any(MapSqlParameterSource.class),
Mockito.any(String.class))).thenReturn(Result1);
Mockito.when(namedJdbcTemplate.queryForObject(Mockito.anyString(), Mockito.any(MapSqlParameterSource.class),
Mockito.any(String.class))).thenReturn(Result2);
/**calling actual*/
SomeClass.Getsomething();
}
i tried to call it twice but it will hold only one result.
mockito.doreturn fails to give any result and calls real method inside function, provide null result
@Test
public void getNewRecordsTest2(){
Mockito.doReturn(Result1).when(namedJdbcTemplate).queryForObject("SomeSQLString1", params, String.class);
Mockito.doReturn(Result2).when(namedJdbcTemplate).queryForObject("SomeSQLString1", params, String.class);
/**calling actual*/
SomeClass.Getsomething();
}