改变PHPUnit / Selenium中的$ _POST

时间:2010-12-28 22:26:37

标签: selenium phpunit simpletest

我需要为$ _POST添加一个值,特别是'port',这样我就可以告诉我的测试提交通过假邮件。

The fakemail documentation显示了如何使用SimpleTest将值插入$ _POST:

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

在PHPUnit中,这不起作用:

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

我对测试背后的所有概念都非常不熟悉,所以这可能比我做的更简单。你将如何使用PHPUnit / Selenium完成工作?

1 个答案:

答案 0 :(得分: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设置值。