2010-12-28 10 views
1

Ich muss $ _POST, speziell 'port', einen Wert hinzufügen, damit ich meine Testübergabe an fakemail weitergeben kann.

The fakemail documentation zeigt, wie ein Wert auf $ _POST mit Simple einzufügen:

$this->clickSubmit('Send', array('port' => 10025)); 

In PHPUnit, das funktioniert nicht:

$this->click("//input[@value='Send']", array('port' => 10025)); 

ich hinter alle Konzepte sehr ungewohnt bin Testen, also könnte das einfacher sein als ich es mache. Wie würden Sie die Arbeit mit PHPUnit/Selenium erledigen?

Antwort

1

Haben Sie dies nicht in phpunit getestet, aber in Selenium IDE können Sie versteckte Felder mit Javascript ändern.

Testseite:

<html><head></head><body> 

<?php print_r($_POST); ?> 

<br/><br/> 
<form action="test.php" method="POST"> 
    <input type="hidden" id="hhh" name="hhh" value="orig"/> 
    <input type="text" name="ttt"/> 
    <input type="submit" name="sss"/> 
</form> 
</body></html> 

Script (von firefox IDE erzeugt haben, so dass es nicht getestet):

<?php 
require_once 'PHPUnit/Extensions/SeleniumTestCase.php'; 

class Example extends PHPUnit_Extensions_SeleniumTestCase 
{ 
    protected function setUp() 
    { 
    $this->setBrowser("*chrome"); 
    $this->setBrowserUrl("http://localhost/test.php"); 
    } 

    public function testMyTestCase() 
    { 
    $this->type("ttt", "bbb"); 
    $this->runScript("javascript{ this.browserbot.getCurrentWindow().document.getElementById('hhh').value = 'new2'; }"); 
    $this->click("sss"); 
    } 
} 
?> 

So fügen Sie einfach die port Variable als verstecktes Feld und Wert einstellen mit Javascript.