2010-11-11 20 views
8

मैं अपने स्टोरेज ऑब्जेक्ट के माध्यम से ऑब्जेक्ट्स सम्मिलित करने के लिए PHPUnit का उपयोग कर रहा हूं। प्रत्येक डोमेन ऑब्जेक्ट में एक जोड़ा और आखिरी समयबद्ध टाइमस्टैम्प होता है, जिसे स्वचालित रूप से स्टोरेज ऑब्जेक्ट द्वारा नियंत्रित किया जाता है। मैं PHPUnits डीबी एक्सटेंशन विधि assertDataSetsEqual का उपयोग कर सकता हूं और नीचे दिखाए गए एक्सएमएल डेटा सेट के रूप में गुजर रहा हूं। समस्या को जोड़ा गया है और अंतिम मॉड्यूल को XML डेटासेट में हार्डकोड नहीं किया जा सकता है क्योंकि यह स्वचालित रूप से हर समय बदल जाएगा, क्या मैं इन कॉलों को अनदेखा करने के लिए PHPUnit बता सकता हूं? या टेबल आउटपुट की तुलना किसी अन्य तरीके से करें (एक्सएमएल नहीं) जहां मैं इन कॉलमों को अनदेखा कर सकता हूं?PHPUnit डेटाबेस परीक्षण

टेस्ट

$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 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> 

उत्तर

9

यह पहले से ही है में निर्मित के अनुसार।

इसके अलावा PHPUnit

तो यह

$database_dataset = new PHPUnit_Extensions_Database_DataSet_DataSetFilter ( 
    $this->getConnection()->createDataSet(array('bank_account')), 
    array('bank_account' => array ('date_created')) // excluded 
); 
+3

@Gcoop की तर्ज कि और अधिक किसी और चीज से जानने-जहां-टू-रंग-रूप का एक मामला था साथ काम करना चाहिए। जब तक आपने पूछा नहीं तब तक फ़िल्टर का कोई संकेत नहीं था। तो मुझे खोज बनाने के लिए धन्यवाद। मैंने कुछ नया भी सीखा;) – Gordon

+0

तालिका फ़िल्टरिंग के लिए वही बात मौजूद है: 'नया PHPUnit_Extensions_Database_DataSet_TableFilter ($ तालिका, $ बहिष्करण कॉलम) '। – Archimedix