1
實例化我有一個類,它使用new jdbcTemplate(dataSource)
創建它自己的jdbcTemplate,並在需要時使用新的NameParameterJdbcTemplate(jdbcTemplate)
創建它自己的NamedParameterJdbcTemplate。我如何使用Mockito進行設置,以便在單元測試模板時使用模擬模板來控制返回值?模擬jdbcTemplate由類
實例化我有一個類,它使用new jdbcTemplate(dataSource)
創建它自己的jdbcTemplate,並在需要時使用新的NameParameterJdbcTemplate(jdbcTemplate)
創建它自己的NamedParameterJdbcTemplate。我如何使用Mockito進行設置,以便在單元測試模板時使用模擬模板來控制返回值?模擬jdbcTemplate由類
您可以創建這將創建這些對象,然後用@Spy
功能使用嘲笑他們特殊的封裝水平的方法:
1)創建專門的方法:
public class MyClass{
private Datasource ds;
public void methodUnderTest(){
JdbcTemplate template = getTemplateInstance(ds);
...
}
JdbcTemplate getTemplateInstance(Datasource ds){
return new JdbcTemplate(ds);
}
}
2)間諜類和模擬實例創建方法:
public class MyClassTest{
@Spy
@InjectMocks
private MyClass myClassSpy;
@Mock
private Datasource dsMock;
@Mock
private JdbcTemplate templateMock;
@Before
public void init(){
MockitoAnnotations.initMocks(this);
}
@Test
public void test(){
// Arrange
doReturn(templateMock).when(myClassSpy).getTemplateInstance(dsMock);
// Act and Assert ...
}
}
你已經在使用Spring,爲什麼不注入NamedParameterJdbcTemplate而不是創建一個新實例? –