Breaking News: Grepper is joining Read the official announcement!
Check it out

Spring WebFlux how to test controllers using webTestClient

Pragya Keshap answered on February 15, 2023 Popularity 1/10 Helpfulness 1/10


More Related Answers

  • Mock MVC Test with Spring Boot
  • Spring Boot Controller Tests
  • Spring WebClient usage
  • Test Spring WebClient with MockWebServer from OkHttp
  • Integration Testing With @SpringBootTest
  • Testing in Spring Boot
  • How to Test Spring MVC Controllers?
  • spring reactive web client throw exception test
  • test controller api rest
  • unit test apis without loading spring context
  • test controller in spring boot without spring context
  • To test the Controllers, we can use @WebMvcTest
  • @webfluxtest example
  • Testing webflux
  • WebFluxTest with WebTestClient
  • Testing web controllers with MockMVC
  • Spring WebFlux WebSocket – JUnit Test:
  • Spring boot security webclient webflux
  • Testing the Entire Application With @SpringBootTest
  • Spring WebTestClient for Efficient REST API Testing
  • Further testing with Spring WebClient and MockWebServer
  • Testing the Spring RestTemplate With @RestClientTest
  • Test WebFlux
  • test controller spring boot

  • Spring WebFlux how to test controllers using webTestClient


    In the starting of the test class, we have added the @RunWith(SpringRunner.class). This tells JUnit to run using Spring’s testing support.

    we have also used @WebFluxTest(EmployeeController.class). Using this annotation will disable full auto-configuration and instead apply only configuration relevant to WebFlux tests (i.e. @Controller, @ControllerAdvice, @JsonComponent, Converter/GenericConverter, and WebFluxConfigurer beans but not @Component, @Service or @Repository beans). Typically @WebFluxTest is used in combination with @MockBean or @Import to create any collaborators required by your @Controller beans.

    Inside our test class, we have our webTestClient Object. It is a non-blocking, reactive client for testing web servers. It uses reactive WebClient internally to perform requests and provides a fluent API to verify responses. WebTestClient can connect to any server over an HTTP connection. It can also bind directly to WebFlux applications using mock request and response objects, without the need for an HTTP server.

    We have used @MockBean annotation with EmployeeService. When @MockBean is used on a field, as well as being registered in the application context, the mock will also be injected into the field.

    With WebTestClient we can define the route and its expected response in the test case. The assertions can be done using expectStatus(), expectHeader() or even expectBody(). How to use them is already given in the code above.

    Popularity 1/10 Helpfulness 1/10 Language java
    Source: Grepper
    Link to this answer
    Share Copy Link
    Contributed on Feb 15 2023
    Pragya Keshap
    0 Answers  Avg Quality 2/10


    Continue with Google

    By continuing, I agree that I have read and agree to Greppers's Terms of Service and Privacy Policy.
    Grepper Account Login Required

    Oops, You will need to install Grepper and log-in to perform this action.