我創建了一個PHP類,該類封裝了filter_input函數,
要使用url
,name
和age
欄位驗證HTML表單,代碼將如下所示:
$post = Filter::POST();
if ($post->validate_string('name') && $post->validate_integer('age')) {
$url = $post->sanitize_url('url');
}
相同的:
if (filter_input(INPUT_POST,'name',FILTER_UNSAFE_RAW) && filter_input(INPUT_POST,'age',FILTER_VALIDATE_INTEGER)) {
$url = filter_input(INPUT_POST,'url',FILTER_SANITIZE_URL);
}
代碼已經完成了,現在我想為它創建一個PHPUnit測試。
問題是,我不知道如何在PHPUnit上偽造GET/POST數據,
我嘗試使用下面的PHPT測試和PHPUnit方法來實現,但是沒有成功:
--TEST--
Generates POST and GET data to be used in FilterTest.php
--POST--
name=Igor&age=20
--GET--
name=Igor&age=19
--FILE--
<?php
echo $_POST['nome'].' = '.$_POST['idade'];
?>
--EXPECT--
Igor = 20
public function testPhpt() {
$phpt = new PHPUnit_Extensions_PhptTestCase('FilterTest_data.phpt', array('cgi' => 'php-cgi'));
$result = $phpt->run();
$this->assertTrue($result->wasSuccessful());
}
原始代碼:http://pastebin.com/fpw2fpxM
用於初始測試的代碼: http://pastebin.com/vzxsBQWm