A symfony tip: Unit test your Propel classes

Fabien Potencier

October 03, 2008

Unit testing Propel classes in symfony 1.0 was a bit tricky. As of symfony 1.1, it is much more easier.

To test a Propel object, you need to enable the autoloading of Propel classes, provide a valid database connection to Propel, and feed the database with some test data.

Thankfully, it is quite easy as symfony already provides everything you need:

The following example shows you a very simple test file for a User Propel model:

<?php
 
include(dirname(__FILE__).'/../bootstrap/unit.php');
 
new sfDatabaseManager(ProjectConfiguration::getApplicationConfiguration('frontend', 'test', true));
$loader = new sfPropelData();
$loader->loadData(sfConfig::get('sf_data_dir').'/fixtures');
 
$t = new lime_test(1, new lime_output_color());
 
// begin testing your model class
$t->diag('->retrieveByUsername()');
$user = UserPeer::retrieveByUsername('fabien');
$t->is($user->getLastName(), 'Potencier', '->retrieveByUsername() returns the User for the given username');
 
Jarod51 — October 03, 2008 14:45   #1
More tests tutorial :) I need it bad... I have sent several formation request on test to Sensio Labs, but no response until now.