Java 为什么spring云配置示例测试需要旋转配置服务器?

Java 为什么spring云配置示例测试需要旋转配置服务器?,java,spring-cloud,spring-cloud-stream,spring-cloud-config,spring-cloud-bus,Java,Spring Cloud,Spring Cloud Stream,Spring Cloud Config,Spring Cloud Bus,我想为我的配置服务器编写单元/集成测试,所以我选中了链接。有一个类用@SpringBootTest注释,还有一个函数startConfigServer()内部用@BeforeClass注释。为什么需要这个函数,因为有@springbootest注释 我还可以为配置服务器编写哪些其他单元测试用例和集成测试?我还使用了Spring Cloud Stream Kafka和Spring Cloud Bus,并启用了Spring Security基本身份验证。Spring Cloud Bus是一种用于多个

我想为我的配置服务器编写单元/集成测试,所以我选中了链接。有一个类用
@SpringBootTest
注释,还有一个函数
startConfigServer()
内部用
@BeforeClass
注释。为什么需要这个函数,因为有
@springbootest
注释


我还可以为配置服务器编写哪些其他单元测试用例和集成测试?我还使用了Spring Cloud Stream Kafka和Spring Cloud Bus,并启用了Spring Security基本身份验证。

Spring Cloud Bus是一种用于多个应用程序节点通信的机制,提供了广播事件的能力。
通过这种通信,应用程序可以使用它,例如,以动态方式从配置服务器获取配置(配置更改将导致广播适当的事件)

因此,在测试此类应用程序时,测试必须首先提供一个配置服务器,以从中获取配置,因此链接的示例中使用了
startConfigServer()
方法

参考了SpringCloudStream测试支持,以简化此消息传递抽象的测试,但我自己没有使用过

然而,测试这一点的另一种方法是模拟对此配置服务器的所有访问(通过HTTPspring-cloud-stream底层代理)

下面是一个示例(使用RabbitMQ,但与卡夫卡的想法相同)

测试配置服务器正好相反(修改配置文件并断言消息已在底层代理上发布)

为了记录在案,我不确定spring cloud bus是否可以与Kafka一起使用,因为官方文档称仅支持AMQP(0.9):