Notes Used to Craft this Lesson
Until now, we've been focused on unit testing, which is testing individual units of code in isolation. Unit testing is ideal for testing individual service methods, event listeners, and the like. They're lightweight and don't interfere with our AdonisJS HTTP server, while still allowing us to work with the IoC Container to utilize mocks and fakes, as well as other underlying application-level bindings.
Functional tests, on the other hand, will boot our AdonisJS HTTP server as they're meant to test from the outside in, including requests, routes, middleware, controllers, and responses needed to complete individual requests.