Запрос метода (String, ResultSetExtractor <T>) в типе JdbcTemplate не применим для аргументов (String, BeanPropertyRowMapper)

1

У меня проблема с компиляцией, которая является странной. Я не могу это исправить. Тот же самый фрагмент кода отлично работает в другом проекте

org.mockito.Mockito.when(jdbcTemplate.query(org.mockito.Matchers.anyString(), 
    org.mockito.Matchers.any(BeanPropertyRowMapper.class))).thenReturn(SOMELIST);

Я получаю ошибку, поскольку

The method query(String, ResultSetExtractor<T>) in the type JdbcTemplate is not applicable for the arguments (String, BeanPropertyRowMapper)

Но когда я это делаю, я не получаю никаких ошибок. Но я этого не ожидаю.

BeanPropertyRowMapper<MyClass> mapper = 
    new BeanPropertyRowMapper<MyClass>(MyClass.class);
org.mockito.Mockito.when(jdbcTemplate.query(org.mockito.Matchers.anyString(), 
    mapper)).thenReturn(SOMELIST);

Я не уверен, что это проблема Eclipse. Цените свою помощь по этому поводу.

  • 0
    Я не вижу проблем. Какой тип jdbcTemplate имеет?
  • 0
    @talex Из сообщения об ошибке: « ... in the type JdbcTemplate ».
Теги:
spring
mockito
mocking
junit4

2 ответа

2
Лучший ответ

Поскольку BeanPropertyRowMapper<T> является общим интерфейсом, вы должны вызывать any() следующим образом:

Mockito.when(jdbcTemplate.query(Matchers.anyString(), 
    Matchers.<BeanPropertyRowMapper<MyClass>>any())).thenReturn(SOMELIST);
  • 0
    Большое спасибо. Оно работает
  • 0
    и как писать сопоставления для: new Integer [] {1} Мое утверждение таково: Mockito.when (j.query (Mockito.anyString (), Matchers. <BeanPropertyRowMapper <Integer >> any (), Matchers. <BeanPropertyRowMapper <MyClass >> любого ())) thenThrow (Exception.class).
Показать ещё 2 комментария
0

Проверьте зависимость (весовые банки) на несоответствие версий между проектами

Ещё вопросы

Сообщество Overcoder
Наверх
Меню