为什么spring-cloud-config样本测试需要旋转config-server?

时间:2018-07-09 07:11:08

标签: java spring-cloud spring-cloud-stream spring-cloud-config spring-cloud-bus

我想为我的配置服务器编写单元/集成测试,所以我检查了this链接。有一个用@SpringBootTest注释的类,还有一个用startConfigServer()注释的函数@BeforeClass。为什么有@SpringBootTest批注,为什么确实需要此功能?

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

1 个答案:

答案 0 :(得分:0)

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

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

Spring blog引用了 spring-cloud-stream-test-support 来简化对消息传递抽象的测试,但我自己并未使用它。

但是,另一种测试方法是模拟对这个 配置服务器 的所有访问(通过 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