Le cas de test simple ci-dessous échoue avec une exception.
org.mockito.exceptions.misusing.InvalidUseOfMatchersException:
Invalid use of argument matchers! 3 matchers expected, 2 recorded:
Je ne sais pas ce qui ne va pas
@Test
public void testGetStringTest(){
final long testId = 1;
String dlrBAC = null;
NamedParameterJdbcTemplate jdbcTemplate = mock(NamedParameterJdbcTemplate.class);
when(this.dao.getNamedParameterJdbcTemplate()).thenReturn(jdbcTemplate);
when(jdbcTemplate.queryForObject(anyString(), any(SqlParameterSource.class), String.class
)).thenReturn("Test");
dlrBAC = dao.getStringTest(testId);
assertNotNull(dlrBAC);
}
Mockito vous oblige à utiliser uniquement des valeurs brutes ou uniquement des matchers lors du stubbing d'un appel de méthode. L'exception complète (non publiée par vous ici) explique sûrement tout.
Changez simplement de ligne:
when(jdbcTemplate.queryForObject(anyString(), any(SqlParameterSource.class), String.class
)).thenReturn("Test");
à
when(jdbcTemplate.queryForObject(anyString(), any(SqlParameterSource.class), eq(String.class)
)).thenReturn("Test");
et ça devrait marcher.