Boost your Architecture by Test-Driven Development - Extended

Hands-on training on how to use Test-Driven Development (TDD) to boost the architecture of your projects. The course covers writing unit, integration, and end-to-end tests, showing how you can guard and enforce the rules of your architecture. We show the ways TDD helps with building and improving sustainable architecture. JUnit, Kotest, and Spock frameworks are used in the examples, however, the knowledge gained during the course is easily applicable to other testing libraries. During the course, attendees will learn about the challenges of maintaining a huge number of tests in a project, and how to avoid the usual pitfalls.

Duration
3 days
Level
Advanced
Format

60% workshop /

40% lecture

Max Participants
20
Instructors
1
Who Should Attend

Developers and Tech Leads

Key Takeaways
  • TDD workflow with JUnit plus Kotest or Spock
  • Spring Boot integration testing across layers and boundaries
  • Test-suite maintenance for large codebases and keeping code clean
  • Property-based testing to explore edge cases automatically
  • Mutation testing and supporting tools to verify test effectiveness
Training Program

Day 1

  • Introduction
    • Why do we need tests?
    • Unit, integration, contract, and end-to-end tests
    • Shapes of tests
    • TDD/BDD
  • JUnit
    • Features and examples
    • When to use JUnit
  • Kotest or Spock
    • Features and examples
    • Comparison to other Java testing libraries
    • Killer features
  • Test doubles
    • Dummies
    • Fakes
    • Stubs
    • Mocks
    • Spies
  • Properly written tests
    • Good unit tests
    • Code smells in unit tests
    • Patterns

Day 2

  • Integration tests (with examples in Spring Boot)
    • Why do we need integration tests?
    • Different flavours of integration tests
    • Setup for integration tests
    • Testing integration with database
    • Testing application services
    • Testing REST
    • Testing communication with external services
  • Testing Dates

Day 3

  • Tests Maintenance
    • Challenges with maintaining a large number of tests
    • Readable and maintainable big suites of tests
  • Keeping codebase clean
  • Property-based testing
  • Mutation testing
  • Other Testing tools

Ready to Get Started?

Contact us to discuss your training needs, schedule, and how we can customize this program for your team.

Boost your Architecture by Test-Driven Development - Extended | Trainitek