我想为我的配置服务器编写单元/集成测试,所以我检查了this链接。有一个用@SpringBootTest
注释的类,还有一个用startConfigServer()
注释的函数@BeforeClass
。为什么有@SpringBootTest
批注,为什么确实需要此功能?
我还可以为配置服务器编写其他哪些单元测试用例和集成测试?我还使用了Spring Cloud Stream Kafka和Spring Cloud Bus,以及启用的Spring Security基本身份验证。
答案 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 >