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

2024-01-06 11:16 更新

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

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

}

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

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

@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,即使用戶使用更簡單的簽名聲明它們也是如此。)

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

掃描二維碼

下載編程獅App

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

編程獅公眾號(hào)