TDD в Java

Test-Driven Development is a way of programming, which focuses on starting the development process by revealing our intentions. By defining tests, which are examples of behaviour that our code is supposed to realise, we create a problem domain model in our minds, drive and develop the design of the code, and finally provide ourselves with tools for automatic verification of code correctness. This has enormous positive influence on our work: we get safer and more certain coding, less often use of a debugger, less defects, better design and more readable code. This way of coding is completely different to what we normally know, and much more pleasant.

It’s a mixed workshop-presentation model. Not only will you get the theory of driving development by tests, but more importantly you’ll be able to work that way guided by a person who programs like this on a daily basis and leads teams that develop software this way. Expected results of participation in the training:

  • You’ll understand techniques for creating high-quality code
  • You’ll learn What different test types mean
  • You’ll see and practice the TDD cycle, will learn how to design your code to make it testable and readable
  • I’ll show you some libraries that enable testing on different levels

And all of this you’ll learn in the most effective way – by practicing TDD during a series of workshops. This will let you finish the training with the feel and knowledge of what the TDD is and how to apply it in your daily work.

Целевая аудитория

Java разработчики, тимлиды, технические менеджеры

за участника
16 часов
2 дня
Обед включен в стоимость тренинга
При групповой регистрации скидка

Детальная программа

  • Basics – you’ll learn what TDD is, you’ll see the benefits of using this approach and will create first programs this way
    • Why can TDD help you
    • Applying TDD cycle
    • Safe refactoring of test-covered code
    • Using your IDE to higher extent (automated refactoring, code generation)
  • TDD mechanics – a set of knowledge and practices needed to perform TDD in your daily work
    • Keeping the right pace and rhythm at work
    • How to choose the next test
    • Test naming
    • Advanced JUnit
  • Testing collaborating objects – a working OO program is a set of objects that exchange messages. You’ll learn how to test them in isolation, so that tests are simple and execute fast
    • Using test doubles to isolate object under test
    • Mockito library
    • Test-driving UI layer
    • Test-driving DB layer
  • A bit broader view – we’ll systematise ideas around TDD
    • ATDD, BDD
    • Classical and mockist (London school) testing approaches
  • Object-oriented design – learn to design code in such a way, that it’s more readable and tests are easy to write
    • Testability
    • OO heuristics
  • The way forward
    • Maintainability of tests
    • Legacy code
    • Introducing TDD to the team