I have a class where inside a void method it does a new instance creation
public class BaseDao {
protected void setDataSource(DataSource dataSource) {
this.defaultTemplate = new JdbcTemplate(dataSource);
}
}
Now in my Test Class for BaseDao i would like to return a mock when a new instance of JdbcTemplate is created with dataSource arguments instead of a new instance.
@ExtendWith(MockitoExtension.class)
public class BaseDaoTest {
@Mock
private JdbcTemplate defaultTemplate;
@Test
public void testSetDataSource() throws SQLException {
when(<what to do here?>).thenReturn(mockedDefaultTemplate) //here when new instance of JdbcTemplate is created i would like to return this mockedDefaultTemplate
}
}
This is possible in PowerMock using whenNew however i don’t want to use PowerMock because it does not have junit 5 support and in general i dont like powerMock.
Please advise how can i do this.