我需要在数据库(连接,向下 db..)错误期间对应用程序行为进行 Spring 测试。有没有办法从 Spring 单元测试中关闭/杀死或启动 H2 内存数据库?
3 回答
白衣染霜花
TA贡献1796条经验 获得超10个赞
如果测试数据库连接,这里是旧的,但关于该主题的博客仍然不错。您也应该能够使用 TestContainers 来实现更简单的数据库创建。
如果您只需要在某些确切的操作(例如存储库保存)上测试一些失败,您可以简单地模拟存储库以进行测试运行:
var mockedBean = Mockito.mock(MyRepository.class);
var originalBean = ReflectionTestUtils.getField(articleService, fieldName);
Mockito.when(mockedBean.save(Mockito.any(MyEntity.class))).thenThrow(new RuntimeException("My test exception"));
ReflectionTestUtils.setField(myService, fieldName, mockedBean);
...
// test here
...
// set bean back for other test cases
ReflectionTestUtils.setField(myService, fieldName, originalBean);
添加回答
举报
0/150
提交
取消