Я новичок в Junit и Mockito, и я не понимаю, как написать контрольный пример для нижеприведенного JdbcTemplate, и я пытался, но получаю исключение. Может ли кто-нибудь помочь мне, пожалуйста
org.mockito.exceptions.misusing.InvalidUseOfMatchersException:
Invalid use of argument matchers!
Код
@Repository
public class BaaisnEvcIdMSRepository {
@Autowired
private JdbcTemplate jdbcTemplate;
@Transactional
public RowMapperServerResponse getQueryEvcidRepository(BaaisnEvcIdRequest baaisnEvcIdRequest) {
RowMapperServerResponse rowMapperServerResponse = jdbcTemplate.queryForObject(
"select * from Master_Circuit WHERE master_ckt_id = ( select max(master_ckt_id) from master_circuit WHERE product = ? AND id_type = ?)",
new Object[]{baaisnEvcIdRequest.getProduct_type(),baaisnEvcIdRequest.getLata()}, new BaaisnRowMapper());
return rowMapperServerResponse;
}
}
тестовый класс
public class BaaisnEvcIdMSRepositoryTest {
@InjectMocks
BaaisnEvcIdMSRepository baaisnEvcIdMSRepository;
@Mock
JdbcTemplate jdbcTemplate;
@Before
public void setup() {
MockitoAnnotations.initMocks(this);
}
@Test
public void getQueryEvcidRepositoryTest() {
when(jdbcTemplate.queryForObject(eq(ArgumentMatchers.anyString()), refEq(new Object[]{ArgumentMatchers.anyInt()}), eq(String.class))).thenReturn("data");
verify(jdbcTemplate, times(1)).queryForObject(eq(ArgumentMatchers.anyString()), refEq(new Object[]{ArgumentMatchers.anyInt()}), eq(String.class));
}
}