繁体   English   中英

Java Spring Boot集成测试数据库修改和认证

[英]Java Spring Boot Integration Tests Database Modification and Authentication

我有一个测试控制器的集成测试。 我传递了一个请求并返回了响应,并且测试通过了。 但是,在发出请求之前,我必须向/authenticate端点发出请求以检索令牌,以便可以将其放入请求的标头中。 我有两个问题

  1. 我在本地使用的用户名和密码可针对dev LDAP服务器进行验证。 随着应用程序部署到更高的环境,LDAP端点将更改为相应级别。 因此,在高于DEV的环境中,集成测试将失败,因为该用户名/密码组合将无法使用。 那么,获取用户名/密码以匹配环境的最佳方法是什么? 有没有更好的方法来执行此操作,例如迫使spring完全忽略身份验证?
  2. 集成测试测试所有控制器的端点,例如/add/get等。不幸的是,这实际上修改了数据库(预期的)。 有什么方法可以运行这些测试,但实际上不能修改数据库吗?

1)在单元测试类中,如果要使用@TestPropertySource(properties = {"security.basic.enabled=false"})覆盖您的安全设置,请使用@TestPropertySource(locations="classpath:test.properties")完全不同的属性文件测试。

2)您可以使用模拟,或者如果您不想在集成测试中使用模拟,那么每次测试之后,您都必须使用类似以下的方法来清理数据库:

@After      
public void tearDown() {
     cleanupDatabase();
 }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM