SpringCloud 测试功能应用程序
2024-01-06 11:16 更新
Spring Cloud函数还具有一些集成测试实用程序,这些实用程序对于Spring Boot用户而言非常熟悉。例如,这是包装以上应用程序的HTTP服务器的集成测试:
@RunWith(SpringRunner.class) @FunctionalSpringBootTest @AutoConfigureWebTestClient public class FunctionalTests { @Autowired private WebTestClient client; @Test public void words() throws Exception { client.post().uri("/").body(Mono.just("foo"), String.class).exchange() .expectStatus().isOk().expectBody(String.class).isEqualTo("FOO"); } }
该测试几乎与您为同一应用程序的@Bean
版本编写的测试相同-唯一的区别是@FunctionalSpringBootTest
注释,而不是常规的@SpringBootTest
。所有其他部件,例如@Autowired
WebTestClient
,都是标准的Spring Boot功能。
或者,您可以仅使用FunctionCatalog
为非HTTP应用编写测试。例如:
@RunWith(SpringRunner.class) @FunctionalSpringBootTest public class FunctionalTests { @Autowired private FunctionCatalog catalog; @Test public void words() throws Exception { Function<Flux<String>, Flux<String>> function = catalog.lookup(Function.class, "function"); assertThat(function.apply(Flux.just("foo")).blockFirst()).isEqualTo("FOO"); } }
(FunctionCatalog
始终将函数从Flux
返回到Flux
,即使用户使用更简单的签名声明它们也是如此。)
以上内容是否对您有帮助:
更多建议: