J'utilise PHPUnit pour tester l'insertion d'objets via mon objet de stockage. Chaque objet de domaine a un horodatage ajouté et modifié en dernier, qui est géré automatiquement par l'objet de stockage. Je peux utiliser PHPUnits DB méthode d'extension assertDataSetsEqual et passer en tant que jeu de données XML comme indiqué ci-dessous. Le problème est ajouté et lastmodified ne peut pas être codé en dur dans l'ensemble de données XML car cela va changer tout le temps automatiquement, puis-je dire à PHPUnit d'ignorer ces cols? ou comparer la sortie des tables d'une autre manière (pas XML) où je peux ignorer ces colonnes?Test de base de données PHPUnit
test
$user = new Social_User();
$user->setFk_mswuserId(10);
$user->setFirstName('Gavin');
$store = new Storage();
$store->save($user);
$xml_dataset = $this->createFlatXMLDataSet('after-new.xml');
$this->assertDataSetsEqual($xml_dataset, $this->getConnection()->createDataSet());
XML Dataset
<?xml version="1.0" encoding="UTF-8"?>
<dataset>
<user id="1" password="NULL" ip="0" added="0" authenticated="0" lat="0" lon="0" avatar="0" fk_mswuserId="1" timezoneoffset="0" firstName="Ben" lastName="Freeston" deleted="0" lastModified="0" />
<user id="2" password="NULL" ip="0" added="0" authenticated="0" lat="0" lon="0" avatar="0" fk_mswuserId="10" timezoneoffset="0" firstName="Gavin" lastName="Cooper" deleted="0" lastModified="0"/>
</dataset>
@Gcoop qui était beaucoup plus un cas de savoir-où à regarder que toute autre chose. Je n'avais aucune idée du filtre existe jusqu'à ce que vous demandiez. Alors merci de m'avoir fait chercher. J'ai aussi appris quelque chose de nouveau;) – Gordon
Même chose pour le filtrage de table: 'new PHPUnit_Extensions_Database_DataSet_TableFilter ($ table, $ excludeColumns)'. – Archimedix