Visa utbildning.se som: Mobil

Modern TDD i Java

Edument
Kort om utbildningen
2 dagar
21 500 - 25 900 SEK exkl. moms
Nästa tillfälle: 2019-08-26 - Stockholm
Göteborg, Malmö, Stockholm
Öppen utbildning
Kommande starter
Stockholm
2019-08-26  
25 900 SEK
2019-10-21 09:00  
25 900 SEK
Göteborg
2019-08-26 09:00  
25 900 SEK
2019-10-14 09:00  
25 900 SEK
Malmö
2019-09-02  
25 900 SEK
2019-10-07 09:00  
25 900 SEK

Kursbeskrivning

Modern TDD i Java

Test-Driven Utveckling (TDD)  sätter testning i centrum för utvecklingsprocessen. Istället för att testning blir en tråkig, tidskomprimerad buggjakt som kommer efter  implementationen, låter TDD oss använda automatiserade tester för att  driva och stödja själva implementationsprocessen. Rätt applicerad kan TDD leda till bättre designad, mer felfri programvara som utvecklare kan känna tillförsikt kommer att utvecklas och utvidgas i takt med nya krav.

Det låter bra, men som alltid hittar vi utmaningar i detaljerna: Hur  kan vi skriva automatiserade tester? Varför är det en bra idé att låta  tester driva utvecklingen? Hur kan vi hitta tid att skriva tester?

Kursen, utvecklad av Eduments ledande lärare och utvecklare, bygger  på en uppsjö verkliga exempel för att visa hur man tillämpar TDD. Självklart guidar vi dig noga igenom de praktiska aspekterna att skriva  enhetstester — men det slutar inte där. Vi visar hur tester kan hjälpa  designprocessen, hur man får ut mer av tester, och diskuterar de  egenskaper bra tester har samt pekar ut olika fallgropar att undvika.

Relevant teori mixat med demonstrationer och övningar ger dig chansen att prova själv.

Förkunskaper

Du bör ha grundläggande Java-kunskaper; motsvarande minst ett års programmering i Java.

Kursinnehåll

Day 1

Straight To The Action: A TDD Spoiler

  • Opening demonstration of using TDD to add a new feature to a system
  • Dissecting the demo: test first, red/green/refactor, regression avoidance

Stepping Back: The Big Picture

  • Traditional views of testing, and why they're suboptimal
  • What makes TDD different?
  • Why red/green/refactor?
  • Why not red/green/refactor?
  • Types of test

Baby Steps: Basic Unit Testing

  • What is JUnit?
  • Getting JUnit
  • Test fixtures and tests
  • Assertions
  • The "System Under Test" pattern
  • The "Arrange, Act, Assert" pattern
  • Exercise on writing basic unit tests

Growing Up: Better Unit Test Design and Implementation

  • Factoring out boilerplate with Setup methods
  • Considering happy and sad paths
  • Errors give you next steps just like successes do
  • Testing for exceptions
  • Tell, Don't Ask: Avoiding state inspection
  • Test method granularity
  • Anti-patterns to avoid
  • Testing kata
  • Other test runners
  • The Law of Demeter: Focus on the SUT
  • Exercise on writing better unit tests

Refactoring

  • What refactoring really is
  • Refactor mercilessly
  • You Ain't Gonna Need It
  • Once And Only Once
  • Single Responsibility Principle
  • Feature Envy
  • Exercise on refactoring

Day 2

Coping With Dependencies: Mocking, Stubbing and DI

  • Why dependencies make testing harder
  • The problem with new
  • The Dependency Inversion solution
  • Refactoring to DI
  • Stubs vs. mocks
  • Stubbing by hand
  • Exercise on dependency injection and stubbing

Oh, The Mockery: Mock/Stub Object Frameworks

  • Why consider a mock/stub object framework?
  • Some of the options
  • Stub objects with EasyMock
  • Mock objects with EasyMock
  • Exercise on using EasyMock

Environmental Issues: Time, UIs, Databases, oh my...

  • Taking control of time
  • Presentation patterns for testable UIs
  • Coping with data access

Higher Order Programming and Testing: IoC without the DI

  • Why Inversion of Control is the really interesting thing here
  • A quick lambda refresher
  • Lambda injection
  • Exercise on lambda injection

Functional Influences: Referentially Transparent Business Logic

  • What is referential transparency?
  • Why is it so desirable when doing automated testing?
  • Behavioural testing and BDD
  • A command/event/aggregate factoring with behavioural tests
  • Exercise on referentially transparent business logic

Where To Put It: Test Organization

  • Solution structure
  • Unit tests and integration tests
  • Organization by system under test
  • Organization by specification

A testing mentality: Fitting tests into the process puzzle

  • Continuous Integration
  • Test Coverage Analysis
  • Commit early and often
  • Continous Testing
  • Continuous review
  • Frequent releases

Intresseanmälan

Fyll i formuläret för att få mer information om Modern TDD i Java, direkt från arrangören. Det är gratis och inte bindande!

Edument

Edument

Välkommen till Edument!

Vi är ett kunskapsbolag som tillhandahåller kunskap inom mjukvarubranschen genom utbildning, mentorskap samt koncept- och produktutveckling. Edument AB grundades 2010 i Helsingborg av Acke Salem och Tore Nestenius. De möttes för första gången på en konferens där de började diskutera att...


Läs mer om Edument och visa alla utbildningar.

Kontaktuppgifter

Edument

Kullagatan 21
252 20

 Visa telefonnummer

Recensioner
Kursrecensioner
Bli den första att recensera Modern TDD i Java!

Arrangörsrecensioner
(4,2)
Baseras på 145 recensioner.
Alla recensioner för arrangören