Spring has taken over as the leading platform to create web-based, APIs and microservices in the Java world. As a modern framework, it comes with many features for testing. In this workshop, we’re going to cover and experiment with the Spring and Spring Boot testing capabilities and learn about how to use them for quick feedback, different levels of testing, and long-term test maintenance.

The 2-day workshop is intended for Java developers and testers who want to develop and test their APIs. Using hands-on exercises, we’ll explore Spring testing features, testability issues in Spring, design best practices, how to use TDD for APIs and more.

Apart from planned topics, we’ll set aside time to write tests on YOUR code, including discussion on how and what to test. Customizing the workshop to your needs is essential to continue working successfully forward.

The workshop requires Java programming and unit testing knowledge.

Workshop total length: 2 days

Remote and on-site options.

Workshop goals

Following the workshop, attendees will be able to:

  • Describe Spring testability features
  • Configure and organize a Spring Boot project for effective integration and unit testing
  • Decide when to use which tests: unit, integration and UI
  • Test APIs with database supported integration tests
  • Simulate dependent APIs responses
  • Analyze and configure tests to run in continuous integration
  • Optimize design and code for testability
  • Apply TDD principles to API developments

Workshop agenda

    • Introduction to Spring and Spring Boot and their use in modern software projects (web, microservices, API)
    • Spring Tests
      • Spring’s support for different types of tests (unit, integration, API)
      • Test categorization principles – What kind of tests to write for parts of the API
      • Test isolation and clean-up
      • Spring tests patterns and anti-patterns
    • Mocking
      • Lifecycle of mocks in Spring
      • Mocking Injected dependencies using Mockito
      • Mocking dependent services and called APIs
    • Architecture and design
      • Understanding Spring application context in tests
    • Testable architecture
      • Testability considerations for code and architecture
      • Spring architecture support for testing (beans, configurations and profiles)
      • Caching considerations in tests
    • Testable code
      • Project organization of code, tests, and configuration
      • Refactoring for testability
      • Writing clean Spring tests
    • REST API Testing
      • Testing APIs remotely
      • Testing APIs locally
      • Testing API consumers
      • Exploratory testing of APIs
    • Data-based tests
      • Spring support for databases tests
      • Using in-memory databases (H2) in integrated tests
    • TDD in Spring
      • Component development
      • API development
    • Working on your code

     Prerequisites

    • Attendees need to have their own computers ready and download the exercises beforehand.
    • Java IDEs: IDEA or Eclipse.
    • Maven
    • Experience with JUnit, Mockito

    For more questions:

    Contact Us!