Spring Boot Rest Client - How to test HTTP calls using @RestClientTest

Sdílet
Vložit
  • čas přidán 5. 08. 2024
  • In this tutorial you will learn how to test Rest Client calls in Spring Boot using the @RestClientTest annotation.
    🔗Resources & Links mentioned in this video:
    GitHub Repository: github.com/danvega/rest-clien...
    👋🏻Connect with me:
    Website: www.danvega.dev
    Twitter: / therealdanvega
    Github: github.com/danvega
    LinkedIn: / danvega
    Newsletter: www.danvega.dev/newsletter
    SUBSCRIBE TO MY CHANNEL: bit.ly/2re4GH0 ❤️
  • Věda a technologie

Komentáře • 40

  • @assaduzzaman_dsi
    @assaduzzaman_dsi Před 6 měsíci +12

    Nice. Is it possible to make another video regarding how we do mock of APIs that are being protected OAuth2/OIDC and CSRF enabled?

    • @codemonkey
      @codemonkey Před 3 měsíci

      Yes. Please do this. Most endpoints need security. How to wire in these configurations is giving me fits. Please help. :)

  • @erfannavab9805
    @erfannavab9805 Před 6 měsíci +1

    It was so helpful. Thanks Dan

  • @ajayantony4412
    @ajayantony4412 Před 5 měsíci

    Thank you Dan!

  • @codemonkey
    @codemonkey Před 3 měsíci

    BTW, truly appreciate you taking the time to do this. :)

  • @mr_raviparihar609
    @mr_raviparihar609 Před 6 měsíci

    Much informative

  • @OneClickLabs
    @OneClickLabs Před 5 měsíci

    Very useful, thanks.

    • @DanVega
      @DanVega  Před 5 měsíci

      Glad it was helpful!

  • @andytael
    @andytael Před 6 měsíci +1

    Great information! Maybe do the same wit the JDBC Client and mocking it up?

  • @praneethjayawardena7883
    @praneethjayawardena7883 Před 6 měsíci +1

    Great really helpful ❤

  • @peshutanpavri1599
    @peshutanpavri1599 Před 5 měsíci

    This is great, thank you so much for this. When we are doing the Integration test and we are using @SpringBootTest, we just use the regular rest client to test my own controllers ?

  • @gallardofabian
    @gallardofabian Před 6 měsíci +1

    Nice video. Do You know a good plugin for intellij for owasp security analyzer? Maybe a series of videos with the top ten attacks

  • @codemonkey
    @codemonkey Před 3 měsíci +1

    When I run your tutorial WITHOUT adding any specific type of HTTP client, it still calls the actual service instead of the Mock Serivce. The test of course fails with expected 2 but had 100. Has something changed since this video was published?

  • @AlessiaCaraFans
    @AlessiaCaraFans Před 3 měsíci

    Heyyy ,pls do more videos about testing with more advanced topics , especially how to test when we have different requests at the same time for same method in a certain controller that talks to the client API , (also pls what is the name of plugin you use in intellij to autocomplete for you more than 1 line of code ) ^^ thankiiiiiiies from Morocco , you're amazing Mr Dan Vega

  • @BabaykaMoscow
    @BabaykaMoscow Před 26 dny

    Could you, please, make a video on how to setup RestClient to use proxy with and without authentication?

  • @marba6923
    @marba6923 Před 6 měsíci +2

    Hi Dan. Nice video. I have one question. When I write tests using give/when/then sections I put the mock configuration in the 'given' section. In the 'when' section there is the execution of the tested objected only. What do you think about that?

    • @DanVega
      @DanVega  Před 6 měsíci +1

      You are correct and I should have done the actual execution (findAll()) in the when block. Thank you for noticing and the feedback.

    • @codemonkey
      @codemonkey Před 3 měsíci

      Another approach is Arrange, Act, Assert. In this approach the given and when in the video would be part of the Arrange block. The Act block would be the call that executes the service. The asserts would then fall into the assert block, of course. :)

  • @Jallallalla
    @Jallallalla Před 3 měsíci

    This is great. But I am stuck when I have two rest clients in my application. The documentation suggests I should use the MockServerRestClientCustomizer. This gets rid of the error messages and in the customizer I see my the mockservers for each of my clients. But I am stuck at how to get the correct server for each client. You can get a server out of the customizer with getServer(), but this takes a RestClient.Builder(??).
    I can get the "first" server and the "second" server out of the HashMap that the customizer provides, but the tests are too flaky. Sometimes client A is the first entry and sometimes client B is the first entry.
    Can you help me?

  • @OneClickLabs
    @OneClickLabs Před 3 měsíci

    Could you point us to an example where the RestClient is invoking an API with HTTP method as POST method instead of GET?

  • @JohnSmith-zs6ow
    @JohnSmith-zs6ow Před měsícem +2

    Just downloaded the tutorial (with no changes) and the Test failed with 100 replies - indicating that the live server was being contacted (not the mocked server). A couple of other people seem to have had the same issue. Has there been a fix for this issue since the video was published? I commented out the JdkClientHttpRequestFactory as suggested in the video - which works - but isn't much use when your other videos recommend this substitution - meaning that I can't test the code I'm writing.

    • @DanVega
      @DanVega  Před měsícem

      This is a known issue you can follow here for updates
      github.com/spring-projects/spring-boot/issues/38832

    • @DanVega
      @DanVega  Před měsícem

      There is a workaround in that issue if you're interested.

    • @JohnSmith-zs6ow
      @JohnSmith-zs6ow Před měsícem

      Excellent. Thank You.

  • @nickcruz4811
    @nickcruz4811 Před 6 měsíci

    Where do you usually use the @Component? I know the @Service is for the business layers, what im quite confused with the correct usage for @Component.

    • @brunokingz
      @brunokingz Před 6 měsíci

      You can use @Component with anything you want to inject

  • @leonardoncintra
    @leonardoncintra Před 20 dny

    How to test 404, 401 and 500 http status ?

  • @calintamas7576
    @calintamas7576 Před 6 měsíci

    Mersi Dan,
    Cand o sa vii la Cluj?

  • @user-uq4sq6sq6z
    @user-uq4sq6sq6z Před 6 měsíci

    hi Dan, i got a question, what if i have configured two rest client in a configuration file, and i want to test one of them, how should i do

    • @DanVega
      @DanVega  Před 6 měsíci

      If you have 2 you should give the bean a specific name, so you can just ask for them by name @Qualifier("todoRestClient")

    • @nico-s29
      @nico-s29 Před 5 měsíci

      @Dan one follow up question what would you recommend when i want to test those clients with @RestClientTest but the rest clients also use Configuration Properties so simply with rest client test i get a bean not found exception for the Config-Properties

  • @blaaarp4u
    @blaaarp4u Před 6 měsíci

    why not to use "REST Assured" lib?

  • @stevenrichman7101
    @stevenrichman7101 Před 5 měsíci

    Hi, what IDE is used in this video?

    • @nico-s29
      @nico-s29 Před 5 měsíci +1

      IntelliJ IDEA Ultimate

  • @MustafaKanzii
    @MustafaKanzii Před 2 měsíci

    what is theme of dan vega ıs there any one knows it

  • @dariuszchmiea3567
    @dariuszchmiea3567 Před 4 měsíci

    @RestClientTest(PostClient.class) would be more usefull if you could create rest client with properties files rather than put constant url ...
    public PostClient(RestClient.Builder builder, RestClientProperties properties) {
    this.restClient = builder
    .baseUrl(properties.url())
    .build();
    }
    @RestClientTest(PostClient.class)
    @ImportAutoConfiguration(RestClientProperties.class)
    Does not work and produce: No qualifying bean of type 'java.lang.String' available ...