WebFlux と WebTestClient

WebTestClient を使用すると、WebFlux を操作できます。次のリストは、WebTestClient をテストモードとして構成する方法を示しています。

Maven
<plugin>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-contract-maven-plugin</artifactId>
    <version>${spring-cloud-contract.version}</version>
    <extensions>true</extensions>
    <configuration>
        <testMode>WEBTESTCLIENT</testMode>
    </configuration>
</plugin>
Gradle
contracts {
		testMode = 'WEBTESTCLIENT'
}

次の例は、WebTestClient 基本クラスと WebFlux の RestAssured をセットアップする方法を示しています。

import io.restassured.module.webtestclient.RestAssuredWebTestClient;
import org.junit.Before;

public abstract class BeerRestBase {

	@Before
	public void setup() {
		RestAssuredWebTestClient.standaloneSetup(
		new ProducerController(personToCheck -> personToCheck.age >= 20));
	}
}
}
WebTestClient モードは EXPLICIT モードより高速です。