如何制作一个依赖?实际~POST / GET数据的PHPUnit测试?
发布时间:2020-12-13 20:11:49 所属栏目:百科 来源:网络整理
导读:我创建了一个包含filter_input函数的 PHP类,以使我们的开发人员的生活更轻松. 要使用url,name和age字段验证HTML表单,代码将是这样的: $post = Filter::POST();if ($post-validate_string('name') $post-validate_integer('age')) { $url = $post-sanitize_u
我创建了一个包含filter_input函数的
PHP类,以使我们的开发人员的生活更轻松.
要使用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 我有什么想法来测试这个课程吗?
你不能伪造原始的POST数据.但问题在于你的代码:它不是单元可测试的.代替:
if (filter_input(INPUT_POST,FILTER_SANITIZE_URL); } 如果你有: if (filter_var($data['name'],FILTER_UNSAFE_RAW) && filter_var($data['age'],FILTER_VALIDATE_INT)) { $url = filter_var($data['url'],FILTER_SANITIZE_URL); } // where $data is a copy of $_POST in that case 将您的代码单元渲染为可测试的,并且与您之前的代码相同. P.S.:FILTER_VALIDATE_INTEGER无效.适当的常量是FILTER_VALIDATE_INT (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |