1

$ _POSTに値、具体的には「port」を追加して、テスト送信にfakemailを通過するように指示できるようにする必要があります。

偽のメールのドキュメントは、SimpleTestを使用して$_POSTに値を挿入する方法を示しています。

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

PHPUnitでは、これは機能しません。

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

私はテストの背後にあるすべての概念に非常に精通していないので、これは私が作成しているよりも簡単かもしれません。PHPUnit / Seleniumを使用してどのように作業を完了しますか?

4

1 に答える 1

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

したがって、変数を非表示フィールドとして追加し、portjavascript で値を設定するだけです。

于 2011-02-08T19:48:57.190 に答える