We learned quite a bit about testing in this chapter! We first covered how to set up and configure Codeception to run within our project. We then covered how to set up unit, functional, and acceptance testing in order to ensure that we had adequate test coverage of our code base. Next, we covered how to create and use fixtures to mock data so that our tests run with a consistent test base. Finally, we covered how to automate the testing of our code with Travis CI, a third-party continuous integration service.
In the next chapter, we'll cover how to use Yii2's internationalization and localization features to make our applications capable of running in multiple languages.