Unit Testing a Website

Have you tried Fitnesse ?

It helps on creating Acceptance tests. They are specially useful for websites, which doing this kind of tests are a pain.

There are a couple of videos from unclebob inside the webpage too. The good thing is that Fitnesse is not restricted for website testing, so your knowledge about using it can be used with other apps too.

The project I'm working on is a Desktop APP written in c++ that uses Fitnesse tests.

But if you meant unit testing the models (which I think you didn't), they can be create using the phpunit lib. I think the ZEND framework has a similar lib for that.


Take a look at TOAST. It's build specially for CodeIgniter. It uses CI infrastructure, so you can run all test tests via a browser and results are displayed back as a web page (HTML). It's very simple to use.

I suggest you test your Controllers as well. Testing model is ok, but model is just the DB storage. Controllers contain all the "business logic" and are the place where most things go wrong.


You might want to check out PHPUnit http://www.phpunit.de/manual/current/en/

I have started using it on my PHP projects and it's very easy to work with and very powerful. In particular, learn and use mocks: http://www.phpunit.de/manual/3.0/en/mock-objects.html

Mocking is especially important when unit testing applications that do database operations.


For actual unit testing without testing the UI, you should just test the functions in the model. Most of your functionality should be in there anyways.

You might want to have a look at Selenium for testing the UI of your site. It can record your actions and play them back, or you can edit the scripting directly. alt text
(source: seleniumhq.org)