Hands-on training on how to use Test-Driven Development (TDD) to boost architecture of your projects.
Kursdatoer er ikke helt avklart ennå, men kontakt [email protected] for påmelding!
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.
Audience: Developers and Tech Leads
Duration: 3 days
- Day 1: Introduction, JUnit, Spock/Kotest, Test doubles, Properly written tests
- Day 2: Integration tests based on Spring Boot setup, Testing Dates
- Day 3: Tests Maintenance, Property-based testing, Mutation testing, and Other Testing tools
Format: 60% workshop / 40% lecture
Training program
1. Introduction
a. Why do we need tests?
b. Unit, integration, contract, and end-to-end tests
c. Shapes of tests
d. TDD/BDD
2. JUnit
a. Features and examples
b. When to use JUnit
3. Kotest or Spock
a. Features and examples
b. Comparison to other Java testing libraries
c. Killer features
4. Test doubles
a. Dummies
b. Fakes
c. Stubs
d. Mocks
e. Spies
5. Properly written tests
a. Good unit tests
b. Code smells in unit tests
c. Patterns
6. Integration tests (with examples in Spring Boot)
a. Why do we need integration tests?
b. Different flavours of integration tests
c. Setup for integration tests
i. Testing integration with database
ii. Testing application services
iii. Testing REST
iv. Testing communication with external services
7. Testing Dates
8. Tests Maintenance
a. Challenges with maintaining a large number of tests
b. Readable and maintainable big suites of tests
9. Keeping codebase clean
10. Property-based testing
11. Mutation testing
12. Other Testing tools
Prerequisites
Kursdatoer er ikke helt avklart ennå, men kontakt [email protected] for påmelding!
Vadzim Prudnikau is a senior Java Developer, Team Lead, and Architect with 17 years experience (4 years in Norwegian market) who believes that technical skills, self-education, being a good team player, and knowledge sharing are the keys to success.
Completed 10+ projects which work in production, led 5 development teams, mentored 20+ developers, interviewed over 100 developers for 10+ positions, created a Java department. An Expert in Java and has also experience with Kotlin, Scala, Groovy, JavaScript programming languages.
Marek Dominiak is a software developer and architect with 15 years of experience (10 years in Norwegian market) mainly in Java World. Has experience in mentoring developers and with leading teams. His main focus is on creating sustainable solutions, learning about software craftsmanship, domain-driven design, and code quality.
During his career, Marek has completed many smaller and bigger projects that work in production, interviewed developers, handled communication with customers, helped to design architecture for whole systems and delivered them, and introduced many technologies proven in production. Occasionally Marek is a speaker at conferences related to software development (JDD conference, Warszawskie Dni Informatyki).
Finner du ikke det helt optimale kurset eller kombinasjonen av kurs? Da ordner vi det - sammen. Vi kan tilrettelegge kurs slik at de inneholder akkurat det dere har behov for. Vi kan sette opp et helt nytt kurs, eller tilpasse eksisterende kurs og materiell. Flere medarbeidere kan selvfølgelig også samles til et eget felles kurs, for maksimal effektivitet. Ta kontakt med meg for et forslag til gjennomføring og et tilbud basert på deres behov.