【发布时间】:2019-11-29 11:10:40
【问题描述】:
我的 dao 类包含如下语句
JdbcTemplate jdbcTemplate = new JdbcTemplate(datasourceResolver.selectDataSource(region));
我很难模拟该声明
我在我的测试类中为 datasourceResolver 和 datasource 创建了模拟对象,并在我的测试方法中调用如下,但它抛出非法 Argument 异常,说 Property 'datasource' is required' Mockito.when(datasourceResolver.selectDataSource(Mockito.anyString())).thenReturn(dataSource);
请告知我们如何模拟这个数据源对象?
提前致谢!
【问题讨论】:
-
请添加您的异常的堆栈跟踪,相关的单元测试和被测代码。此外,虽然可以模拟 jdbc 数据源,但我不建议这样做,因为您通常必须通过编写集成测试来涵盖这一点。
-
我尝试了类似这样的公共数据源 dataSource() throws SQLException { dataSource.setLoginTimeout(100);返回 Mockito.mock(DataSource.class); } 但它不工作
-
分享DAO和Test类的java代码。
标签: spring-boot junit mockito datasource spring-jdbc