Изменение $ _POST в PHPUnit / Selenium - PullRequest
       34

Изменение $ _POST в PHPUnit / Selenium

1 голос
/ 29 декабря 2010

Мне нужно добавить значение в $ _POST, в частности, 'port', чтобы я мог сказать моей тестовой отправке пройти через fakemail.

В документации fakemail показано, как вставить значение$ _POST с SimpleTest:

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

В PHPUnit это не работает:

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

Я очень незнаком со всеми концепциями тестирования, так что это может быть прощечем я делаю это.Как бы вы справились с работой, используя PHPUnit / Selenium?

1 Ответ

1 голос
/ 08 февраля 2011

Не проверял это в 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.

...