2014-06-28 27 views
6

Aşağıdaki basit test durumu bir istisna ile başarısız oluyor.Argüman eşleştirmelerinin geçersiz kullanımı

org.mockito.exceptions.misusing.InvalidUseOfMatchersException: Invalid use of argument matchers! 3 matchers expected, 2 recorded:

Ben

@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); 

} 

cevap

17

mockito sadece ham değerleri kullanmak ya gerektirir sorunun ne emin değilim ya bir yöntem çağrısı stubbing yalnızca matchers. Tam istisna (burada sizin tarafınızdan gönderilmemiş) kesinlikle her şeyi açıklar.

Basit değişim hattı:

when(jdbcTemplate.queryForObject(anyString(), any(SqlParameterSource.class), String.class 
         )).thenReturn("Test"); 

when(jdbcTemplate.queryForObject(anyString(), any(SqlParameterSource.class), eq(String.class) 
         )).thenReturn("Test"); 

için ve çalışması gerekir.

+0

eklenti 'ithalat statik org.mockito.Mockito. *;' Değişim yukarıda – macias

+1

yöntem eq" olarak derleme zamanı hatası verir (Sınıf ) Ben sadece – Anwar

+0

için tanımlanmamıştır işe yarıyor – macias

İlgili konular