Używam PHPUnit do testowania wstawiania obiektów za pośrednictwem mojego obiektu pamięci masowej. Każdy obiekt domeny ma dodany i ostatnio zmodyfikowany znacznik czasu, który jest automatycznie obsługiwany przez obiekt pamięci masowej. Potrafię używać metody rozszerzeń PHPUnits DB assertDataSetsEqual i przekazywać jako zestaw danych XML, jak pokazano poniżej. Problem został dodany, a ostateczna modyfikacja nie może być zakodowana na stałe w zbiorze danych XML, ponieważ to będzie się zmieniać cały czas automatycznie, czy mogę powiedzieć PHPUnit, aby zignorował te cols? lub porównać tabele wyjściowe w inny sposób (nie XML), gdzie mogę zignorować te kolumny?Testowanie bazy danych 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 że był o wiele bardziej przypadek wiedząc-where do wygląd niż cokolwiek innego. Nie miałem pojęcia, że filtr istnieje, dopóki nie zapytałeś. Dziękuję za dokonanie wyszukiwania. Nauczyłem się też czegoś nowego;) – Gordon
To samo dotyczy filtrowania tabel: 'new PHPUnit_Extensions_Database_DataSet_TableFilter ($ table, $ excludeColumns)'. – Archimedix