如何模拟JdbcTemplate.queryForObject()方法

but*_*ski 4 java jmockit jmock mockito springmockito

我的方法看起来像这样:

public class Decompile extends JdbcDaoSupport
public void getRunner(){
String val = this.getJdbcTemplate().queryForObject(sql,String.class, new Object[]{1001});
}
}
Run Code Online (Sandbox Code Playgroud)

请建议我如何嘲笑这个.

but*_*ski 7

@Mock
JdbcTemplate jdbctemplate;

@Test
public void testRun(){
when(jdbctemplate.queryForObject(anyString(),eq(String.class),anyObject()).thenReturn("data");
}
Run Code Online (Sandbox Code Playgroud)

  • 您必须在before方法中添加MockitoAnnotations.initMocks(this)才能使其与Mock注释一起使用. (2认同)

Evg*_*eev 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);
Run Code Online (Sandbox Code Playgroud)