Most of unit testing tutorials just show how to start writing basic unit tests. However, implementing unit tests in heavy enterprise architecture can't be that simple. This training will guide you from basics to advanced, introducing students to unit, functional and integration testing concepts.
Unit tests test system component in isolation, integration tests act as concrete to verify integration between different parts of a system. Functional tests run on top of a PHP framework (Laravel, Symfony, Zend, Yii) and cover the system from upside, using public interfaces. We will also cover TDD, BDD, ATDD concepts, to learn how to build test before the code, to design scalable and testable application at first.
We will help Codeception as the only tool to incorporate all levels of testing and provide highly effective API for writing and maintaining PHP tests.
Target Audience:
Engineers
Workshop agenda:
General overview
The purpose of automated testing
Testing styles: blackbox and whitebox testing
Different testing levels: unit / integration / functional
Business specification to drive a test
Testing domain logic
Testable Code & Architecture
Unit test for pure functions
Writing testable code
Test Driven Development (TDD)
Data Providers
Managing test dependencies
MocIntegration & Unit Testing
How to prioritize what to test
Testing business logic
Integration tests vs Unit tests: when to use which
Handling external services in integration tests
Test data management: factories, fixtures
Collecting code coverage
API & Controller Testing
Controller Testing with Functional Tests
REST API testing as functional tests
Writing readable test scenarios
Extending Codeception