PHP HTML Sağlam birim test

2 Cevap php

Ben işte eski bir PHP kod temeli birim testleri ekliyorum. Ben test ve daha sonra HTML nesil bir sürü kod yeniden yazma ve üretilen dizeleri beklenen dize aynıdır varsa, şu an ben gibi, bu yüzden test ediyorum olacaktır: (phpunit kullanarak)

public function testConntype_select() {
    $this->assertEquals(
        '<select><option value="blabla">Some text</option></select>',
        conntype_select(1); // A value from the test dataset.
    );
}

Bu yolla çalışılacağını, boşluk ve diğer ilgisiz ayrıntılar bir sürü de test öznitelik dezavantajı vardır. Bunu yapmak için daha iyi bir yolu olup olmadığını merak ediyorum. Örneğin eğer oluşturulan DOM ağaçlarını karşılaştırmak için herhangi bir iyi ve kolay yolu vardır. I ruby için çok benzer sorular bulundu, ancak PHP için bir şey bulamadı.

2 Cevap

Zend_Test_PHPUnit bak. Burada kullanarak DOM sorgu olabilir:

assertQuery() veya {[(1)];}

Ben aynı sorunları ile uğraşıyorum. LOL! Ne ben yapacağım düşünüyorum noktada DOMDocument kullanmaktır. Ama şimdi ben yapıyorum bütün ne yapıyor, hangi kapsam testleri yazıyor. İşte benim testlerden biridir. Sizinki gibi aynı:

public function testUpdateSkuTable() {
    $formName = "sku_id";
    $key = $formName;
    $sku = array('sku_id' => 'sku id', 'description' => 'generic description');

    $expected = "<div class='sku_editor_container'><form id='sku_edit_form'><div class='section'><div>SKU Edit Information For: <div id='sku_id' style='color:blue;'>sku_id</div></div></div><div class='blank'></div><div class='section'>SKU Data Entry<table class='sku_table'><tr><td>sku_id:</td><td><input type='text' name='sku_id' id='sku_id' value='sku id' size='50'/></td></tr><tr><td>description:</td><td><input type='text' name='description' id='description' value='generic description' size='50'/></td></tr></table></div><div class='blank'></div><input type='submit' name='sku_submit' value='Save SKU Edit' class='sku_submit'></form></div>";
    $actual = $this->view->editorUpdateSku($formName, $sku, $key);

    $this->assertEquals($expected, $actual);
}