我使用mysql和spring 5,spring jpa和spring和JUnit5.
这一定是个常见的问题,但我看不出这是什么问题。我必须与数据库中只有Update权限的用户一起测试一个存储库,但是要执行测试,我有一个sql脚本来输入要执行测试的记录的重新编号。如何使用具有创建权限的用户向数据库(mysql)添加记录,并对只具有更新权限的用户执行我的存储库测试。
亲切的问候,弗兰克
发布于 2022-05-01 07:43:31
您可以为同一个数据库定义两个不同的数据源:一个使用更新权限用户,另一个使用创建权限用户。
为了做到这一点,您可以查看:Spring Boot Configure and Use Two DataSources
也可以访问:https://www.baeldung.com/spring-data-jpa-multiple-databases
一旦定义了这两个数据源以及它们对应的事务管理器,那么您就可以指定在@Transaction注释配置中应用哪个事务管理器/数据源(前面的引用显示了一个使用JUnit测试的示例)。
另一方面,如果您不介意使用自定义简化的数据库环境来执行junit测试,那么使用内存中的数据库(如H2 )配置spring配置文件就更容易了,在这个数据库中,您可以使用相同的用户进行所有操作。无论如何,这是一个简单的数据库环境,将错过在数据库细粒度权限上测试您的代码(我认为这是您的目标之一)。
https://stackoverflow.com/questions/72010866
复制相似问题