为了账号安全,请及时绑定邮箱和手机立即绑定

使用 Spring 测试数据库关闭

使用 Spring 测试数据库关闭

繁华开满天机 2021-07-09 14:49:38
我需要在数据库(连接,向下 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);


查看完整回答
反对 回复 2021-07-14
  • 3 回答
  • 0 关注
  • 218 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信