Over the past few days, as you may have noticed, I’ve been experimenting with PHPUnit, and writing up notes on what I’ve learned. Here’s a biggie, but it’s such a small actual change, I didn’t want to miss it.
So, when you have your autoloader written, you’ll have a function like this (probably):
<?php function __autoload($classname) { if (file_exists(dirname(__FILE__) . '/classes/' . $classname . '.php')) { require_once dirname(__FILE__) . '/classes/' . $classname . '.php'; } }
Load this from your test, or in a bootstrap file (more to come on that particular subject, I think!), like this:
<?php require_once dirname(__FILE__) . '/../autoloader.php'; class SomeClassTest extends ........
And you’ll probably notice the autoloader doesn’t do anything… but why is this? Because PHPUnit has it’s own autoloader, and you need to chain our autoloader to the end. So, in your autoloader file, add this line to the end:
<?php function __autoload($classname) { if (file_exists(dirname(__FILE__) . '/classes/' . $classname . '.php')) { require_once dirname(__FILE__) . '/classes/' . $classname . '.php'; } } spl_autoload_register('__autoload');
And it all should just work, which is nice :)