如何模拟jdbcTemplate.getJdbcTemplate()。execute();方法?

时间:2019-11-29 09:02:03

标签: spring mockito jdbctemplate

我的问题是如何模拟

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

欢迎任何帮助。

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