2012-12-11 172 views

回答

3

一個EasyMock的-3.0示例

String sql = "select * from t1"; 
    Object[] params = new Object[] { 1001 }; 
    JdbcTemplate t = EasyMock.createMock(JdbcTemplate.class); 
    EasyMock.expect(
      t.queryForObject(sql, String.class, params)).andReturn("res"); 
    EasyMock.replay(t); 
+0

謝謝你,會嘗試一下... – buttowski

5
@Mock 
JdbcTemplate jdbctemplate; 

@Test 
public void testRun(){ 
when(jdbctemplate.queryForObject(anyString(),eq(String.class),anyObject()).thenReturn("data"); 
} 
+2

你必須在之前的方法中添加MockitoAnnotations.initMocks(this),以使其與Mock註釋一起工作。 –

2

使用JMockit,代碼將是這樣的:

@Mocked 
JdbcTemplate jdbcTemplate 


new Expectations() { 
    jdbcTemplate.queryForObject(sql,String.class, new Object[]{1001}); 
    result = "result you want"; 
} 

進一步瞭解JMockit信息是here

1

使用的Mockito,你也可以嘲笑queryForObject(..)方法如下:

@Mock 
JdbcTemplate jdbctemplate; 

@Before 
public void setUp() throws Exception { 
    MockitoAnnotations.initMocks(this); 
} 

@Test 
public void testRun(){ 
    when(jdbctemplate.queryForObject(eq("input string"), refEq(new Object[]{1001}), eq(String.class))).thenReturn("data"); 
} 

的信息,一些額外的源泉 - http://sourcesnippets.blogspot.com/2013/06/jdbc-dao-unit-test-using-mockito.html