我的问题是如何模拟
jdbcTemplate.getJdbcTemplate().execute("TRUNCATE table TABLE_1");
方法?
如果我正确的话,它的返回值是空的。
@RunWith(MockitoJUnitRunner.class)
public class Test {
@Mock
private NamedParameterJdbcTemplate jdbcTemplate;
...
//我尝试了这个,但是当然不起作用
doReturn(void).when(jdbcTemplate).getJdbcTemplate().execute("TRUNCATE TABLE TABLE_1");
欢迎任何帮助。
答案 0 :(得分:0)
根据评论,我的理解是getJdbcTemplate
不是最终的,您有兴趣模拟其返回值,以便可以验证方法调用。
这是我要采取的方法:
// create a mock for the return value
@Mock
JdbcTemplate template;
// create a mock for the factory
@Mock
NamedParameterJdbcTemplate jdbcTemplate;
@Before
public void setUp() {
// other initializations here
// configure the factory to return the above mocked template
when(jdbcTemplate. getJdbcTemplate()).thenReturn(template);
}
现在,您应该可以在template
模拟中进行验证了:
verify(template).execute("TRUNCATE TABLE TABLE_1");