Having done away with "eval()" and "register_globals" we now live in a brave new world of autoloading third-party dependencies, object reflection and comment @annotations. Do you really know what is executed when you run a bit of code and do you even want to? PHPUnit is designed to isolate pieces of code for testing. Together with a debugger, this makes for an excellent sandbox to explore this topic. Using the internals of the testing framework we take a look at how quickly complexity creeps in. Starting with a simple test we explore what happens when complexity is introduced: parameters, dependencies, process isolation and finally reordering of units of work. At every step the testing core has to do more work to hide what is really going on. The talk ends connecting the dots by looking at the architecture and implementation of the execution reordering features, introduction of a state-cache and footprint improvements of data-driven automated tests.

Comments

Comments are closed.