Boost your Architecture by Test-Driven Development



Kursarrangør: Bouvet
Sted: Bouvet avd Oslo
          Oslo, Majorstua
Kursadresse: Sørkedalsveien 8, 0369 Oslo (kart)
Type:Åpent kurs / gruppeundervisning
Studie / yrkesutdanning
Undervisningstid: 09:00 - 16:00
Varighet: 3 days
Pris: 16.900

Hands-on training on how to use Test-Driven Development (TDD) to boost 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 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 with maintaining a huge number of tests in a project, and how to avoid usual pitfalls related to that.

Target audience:
Developers, Team Leads, Architects

Day 1.

Introduction
Why do we need tests?
Unit, integration, contract, and end-to-end tests
Inverted test pyramid
TDD/BDD
JUnit
Features and examples
When to use JUnit
Spock
Features and examples
Comparison to other Java testing libraries
Killer features
Parameterized tests
Properly written (unit) 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

Day 3.

Tests Maintenance
Challenges with maintaining a big number of tests
Readable and maintainable big suites of tests
Keeping test code base clean
Property-based testing
Mutation testing
How to ensure your tests are good
Pitest and mutation tests
Other Testing tools
Format: 60% workshop / 40% lecture

Prerequisites

Some experience in Java that allows you to understand and write Java code
Experience in Spring Boot can be a plus because part of the course is dedicated to integration tests based on Spring Boot
Basic knowledge of Git/Intellij IDEA