我的方法是這樣的:如何嘲笑JdbcTemplate.queryForObject()方法
public class Decompile extends JdbcDaoSupport
public void getRunner(){
String val = this.getJdbcTemplate().queryForObject(sql,String.class, new Object[]{1001});
}
}
請建議我怎麼會嘲笑這一點。
我的方法是這樣的:如何嘲笑JdbcTemplate.queryForObject()方法
public class Decompile extends JdbcDaoSupport
public void getRunner(){
String val = this.getJdbcTemplate().queryForObject(sql,String.class, new Object[]{1001});
}
}
請建議我怎麼會嘲笑這一點。
一個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);
@Mock
JdbcTemplate jdbctemplate;
@Test
public void testRun(){
when(jdbctemplate.queryForObject(anyString(),eq(String.class),anyObject()).thenReturn("data");
}
你必須在之前的方法中添加MockitoAnnotations.initMocks(this),以使其與Mock註釋一起工作。 –
使用JMockit,代碼將是這樣的:
@Mocked
JdbcTemplate jdbcTemplate
new Expectations() {
jdbcTemplate.queryForObject(sql,String.class, new Object[]{1001});
result = "result you want";
}
進一步瞭解JMockit信息是here。
使用的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
謝謝你,會嘗試一下... – buttowski