Functional testing
The next type of tests that we can generate are called functional tests. Functional tests allow us to emulate our application without running it through a web server. This provides us with a way to quickly test the output of our application without introducing the overhead of a web server.
This emulation process is achieved by directly manipulating the $_REQUEST
, $_POST
, and $_GET
parameters before executing our application. As a side effect of this behavior, however, certain variables, such as $_SESSION
and $_COOKIE
, as well as headers, can result in junk
errors being thrown, which wouldn't necessarily be thrown in a real environment. Moreover, with Codeception, our functional tests will be executing within a single memory container, which may result in a test failing when run as part of a group as opposed to running a single test. Additionally, unlike acceptance testing, functional testing can't emulate JavaScript and Ajax requests.
Overall, functional testing provides...