2014-06-28 11 views
6

नीचे दिया गया सरल परीक्षण केस अपवाद के साथ विफल रहा है।तर्क matchers का अमान्य उपयोग

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

मैं

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

} 

उत्तर

17

Mockito आप या तो केवल कच्चे मानों का उपयोग करने की आवश्यकता है यकीन है कि क्या गलत है नहीं कर रहा हूँ या केवल matchers जब एक विधि कॉल छोटा करते। पूर्ण अपवाद (यहां आपके द्वारा पोस्ट नहीं किया गया) निश्चित रूप से सबकुछ बताता है।

सरल परिवर्तन लाइन:

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

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

करने के लिए और यह काम करना चाहिए।

+0

ऐड 'आयात स्थिर org.mockito.Mockito *;।' – macias

+1

परिवर्तन ऊपर देता है के रूप में "विधि eq टाइम त्रुटि संकलन (कक्षा ) प्रकार परीक्षण वर्ग – Anwar

+0

के लिए अपरिभाषित है स्थिर आयात मैं सिर्फ उल्लेख किया – macias

संबंधित मुद्दे