09:00 - 17:00
Imagine building an application without having to mess with a web browser, a REST client or a MySQL client. What if you could build full-blown functionality with realistic data operations within the comfort of a unit test harness? What if this meant shipping code earlier and more frequently than you ever have before?
Content & Process
Content of the Workshop
This workshop aims to answer the following questions:
- How do I apply Test-Driven Development when building a Web Application?
- Where do I start?
- What kind of architecture should I use?
Beyond that, the idea of this workshop is to challenge the misconception that "TDD makes me slower". We will show how to leverage TDD, to ship a web service faster than you ever have thanks in part to:
- An enabling architecture
- The TDD methodology
- The easy integration of DoctrineORM with PHPUnit, when using the Symfony Framework
Structure of the Workshop
- Helping attendees with last-minute challenges to getting their environment running https://github.com/elchris/kata_tdd_php_symfony/blob/master/README.md#initial-set-up
- UserRepositoryTest – newUser
- UserServiceTest – registeruser
- CreateUserCest – Controller & Database Generation
- UserRepositoryTest – assignRole
- UserServiceTest – assignRoleToUser
- CreateUserCest – assignRole & Database Generation
- LocationRepositoryTest – testCreateAndGetNewLocationFromLatLong
- LocationRepositoryTest – testGetAlreadySavedLocationFromLatLong
- LocationServiceTest – testGetLocationFromLatLong
- RideRepositoryTest – createRideWithDepartureAndPassenger
- RideRepositoryTest – assignDestinationToRide
- RideRepositoryTest – assignDriverToRide
- RideServiceTest – newRide(AppLocation $departure, AppUser $passenger)
- RideServiceTest – assignDestination
- RideServiceTest – assignDriver
- CreateRideCest – newRide, Assign Destination, Assign Driver
Audience & Requirements
- Attendees should be roughly familiar with the basics of a Test-Driven Development workflow, and ideally, practice some "TDD Katas", which can be found online.
- I recommend watching this talk before the workshop: http://bit.ly/tdd-talk-2
- I will give attendees a private link to a video replicating the beginning part of this workshop. I will also commit and push the code to a dedicated branch to my GitHub such that attendees will have access to the code.
- Attendees can choose to watch me code live and ask questions as I code.
- Attendees can also choose to code alongside me. Those who wish to code alongside me should:
- Bring a laptop
- Before the workshop, have completed instructions outlined in the "Initial Set-Up" section: https://github.com/elchris/kata_tdd_php_symfony/blob/master/README.md#initial-set-up