为啥 spring-cloud-config 示例测试需要旋转配置服务器?
Posted
技术标签:
【中文标题】为啥 spring-cloud-config 示例测试需要旋转配置服务器?【英文标题】:Why spring-cloud-config sample test needs to spin a config-server?为什么 spring-cloud-config 示例测试需要旋转配置服务器? 【发布时间】:2018-12-16 19:18:43 【问题描述】:我想为我的配置服务器编写单元/集成测试,所以我检查了this 链接。有一个用@SpringBootTest
注释的类,还有一个用@BeforeClass
注释的函数startConfigServer()
。为什么需要这个函数,因为有 @SpringBootTest
注释?
我还可以为配置服务器编写哪些其他单元测试用例和集成测试?我还在使用 Spring Cloud Stream Kafka 和 Spring Cloud Bus,并启用了 Spring Security 基本身份验证。
【问题讨论】:
【参考方案1】:Spring-cloud-bus 是一种让多个应用程序节点进行通信的机制,提供了广播事件的能力。 这种通信到位,应用程序可以使用它,例如,以动态方式从 configuration-server 获取配置(配置更改将导致广播适当的事件)。
因此,在测试此类应用程序时,测试必须首先提供 configuration-server 以从中获取配置,因此您链接的示例中的 startConfigServer()
方法.
Spring blog 引用 spring-cloud-stream-test-support 来简化对这种消息传递抽象的测试,但我自己没有使用过。
不过,另一种测试方法是模拟对这个 configuration-server 的所有访问(通过 HTTP 和 spring -cloud-stream 底层代理)。
这是一个example of all the mocking stuff(使用RabbitMQ,但想法与Kafka相同)。
测试 配置服务器 正好相反(修改配置文件并断言消息已在底层代理上发布)。
作为记录,我不确定 spring-cloud-bus 是否可以与 Kafka 一起使用,因为官方文档说仅支持 AMQP (0.9):https://spring.io/projects/spring-cloud-bus
【讨论】:
以上是关于为啥 spring-cloud-config 示例测试需要旋转配置服务器?的主要内容,如果未能解决你的问题,请参考以下文章
spring-cloud-config——Quick Start
问题 spring-cloud-config 和 spring-cloud-bus
重命名 spring-cloud-config 原生配置文件