2010-12-28 3 views
1

$ _POSTに値を追加する必要があります。具体的には 'port'です。テスト提出にfakemailを経由するよう指示できます。

The fakemail documentationはSimpleTestので$ _POSTに値を挿入する方法を示しています。PHPUnitの

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

、これは動作しません:

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

私は背後にあるすべての概念に非常に慣れていませんよこれは私が作っているより簡単かもしれません。 PHPUnit/Seleniumを使って、どのように仕事を終わらせますか?

答えて

1

これはphpunitでテストされていませんが、Selenium IDEではjavascriptを使用して非表示フィールドを変更できます。

テストページ:

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

スクリプト(FirefoxのIDEから生成されたので、それをテストしていない):

<?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"); 
    } 
} 
?> 

だから隠しフィールドとしてport変数を追加し、値を設定しますjavascriptで。

関連する問題