SpringCloud 測(cè)試功能應(yīng)用程序

2024-01-06 11:16 更新

Spring Cloud函數(shù)還具有一些集成測(cè)試實(shí)用程序,這些實(shí)用程序?qū)τ赟pring Boot用戶而言非常熟悉。例如,這是包裝以上應(yīng)用程序的HTTP服務(wù)器的集成測(cè)試:

@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");
	}

}

該測(cè)試幾乎與您為同一應(yīng)用程序的@Bean版本編寫(xiě)的測(cè)試相同-唯一的區(qū)別是@FunctionalSpringBootTest注釋?zhuān)皇浅R?guī)的@SpringBootTest所有其他部件,例如@Autowired WebTestClient,都是標(biāo)準(zhǔn)的Spring Boot功能。

或者,您可以僅使用FunctionCatalog為非HTTP應(yīng)用編寫(xiě)測(cè)試。例如:

@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始終將函數(shù)從Flux返回到Flux,即使用戶使用更簡(jiǎn)單的簽名聲明它們也是如此。)

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)