如何使用phpunit测试验证表单?
在下面的代码中,反馈表单为3个字段(如姓名、电子邮件id和评论)输入信息。因此,验证需要使用phpunit测试进行测试。请帮忙。我对php语法一无所知。如何在phunit测试中断言和检查价值以给出报告如何使用phpunit测试验证表单?,php,unit-testing,phpunit,Php,Unit Testing,Phpunit,在下面的代码中,反馈表单为3个字段(如姓名、电子邮件id和评论)输入信息。因此,验证需要使用phpunit测试进行测试。请帮忙。我对php语法一无所知。如何在phunit测试中断言和检查价值以给出报告 if($_POST){ //echo $sRc; //print "<pre>";print_r($_POST);exit; require_once(CLASSPATH."/utility.class.php"); $oUtility
if($_POST){
//echo $sRc;
//print "<pre>";print_r($_POST);exit;
require_once(CLASSPATH."/utility.class.php");
$oUtility = new utility();
$sRc = base64_decode($_COOKIE['Rc_cf']);
$sEmail = trim($_POST['emailid']);
$scomment = trim($_POST['comment']);
$syour_name = trim($_POST['your_name']);
$sOthereSubject = trim($_POST['subject']);
$sName = trim(strip_tags($oUtility->nonxmlcharreplace($_REQUEST['your_name'])));
$sEmail = trim(strip_tags($oUtility->nonxmlcharreplace($_REQUEST['emailid'])));
$sComments = trim(strip_tags($oUtility->nonxmlcharreplace($_REQUEST['comment'])));
$iError=0;
$sErrorMsg="";
if(strlen($sName)==0){
$sErrorMsg="Your name cannot be blank.";
$iError=1;
} else if(strlen($sEmail)==0){
$sErrorMsg="Email address cannot be blank.";
$iError=1;
}else if(strlen($sEmail)>0){
$iValid = $oUtility->isValidEmail($sEmail);
if($iValid!=1){
$sErrorMsg="Please enter valid email address.";
$iError=1;
}
}
if(empty($sComments) && strlen($sErrorMsg)==0){
$sErrorMsg="Comment cannot be blank.";
$iError=1;
}
if(strlen($sErrorMsg)==0){
require_once(CLASSPATH."feedback.class.php");
$oFeedback = new feedback();
if($iError==0){
$aParameters=Array('name'=>$sName,'email'=>$sEmail,'comments'=>$sComments,'cdate'=>'now()', 'is_active'=>1,'cdate'=>'now()','udate'=>'now()');
$iRes = $oFeedback->addUpdFeedback($aParameters);
$sInserMsg = 1;
$sEmail = $sName = $scomment='';
}
}
if($\u POST){
//echo$sRc;
//打印“”;打印($\u POST);退出;
require_once(CLASSPATH./utility.class.php”);
$oUtility=新的实用工具();
$sRc=base64_解码($_COOKIE['Rc_cf']);
$sEmail=trim($_POST['emailid']);
$scomment=trim($_POST['comment']);
$syour_name=trim($_POST['your_name']);
$sOthereSubject=修剪($_POST['subject']);
$sName=trim(strip_标签($oUtility->nonxmlcharreplace($_请求['your_name']));
$sEmail=trim(strip_标记($oUtility->nonxmlcharreplace($_请求['emailid']));
$sComments=trim(strip_标记($oUtility->nonxmlcharreplace($_请求['comment']));
$iError=0;
$sErrorMsg=“”;
如果(strlen($sName)==0){
$sErrorMsg=“您的姓名不能为空。”;
$iError=1;
}else if(strlen($sEmail)==0){
$sErrorMsg=“电子邮件地址不能为空。”;
$iError=1;
}else if(strlen($sEmail)>0){
$iValid=$oUtility->isValidEmail($sEmail);
如果($iValid!=1){
$sErrorMsg=“请输入有效的电子邮件地址。”;
$iError=1;
}
}
if(空($sComments)&&strlen($sErrorMsg)==0){
$sErrorMsg=“注释不能为空。”;
$iError=1;
}
if(strlen($sErrorMsg)==0){
require_once(CLASSPATH.“feedback.class.php”);
$oFeedback=新反馈();
如果($iError==0){
$aParameters=Array('name'=>$sName,'email'=>$sEmail,'comments'=>$sComments,'cdate'=>'now()','is_active'=>1,'cdate'=>'now()','udate'=>'now()');
$iRes=$oFeedback->addUpdFeedback($a参数);
$sInserMsg=1;
$sEmail=$sName=$scomment='';
}
}
您的方法应该很难测试,因为它太长。要构建测试,您必须遵循三个步骤:
public static function validation($input)
{
//Your validation here, return an array of error messages
}
//
然后,您只需编写如下somme测试用例:
您的其他功能将在其他测试用例中进行测试。小方法是可测试性、可读性和可维护性的关键。您的方法应该很难测试,因为它太长。要构建测试,您必须遵循三个步骤:
public static function validation($input)
{
//Your validation here, return an array of error messages
}
//
然后,您只需编写如下somme测试用例:
您的其余功能将在其他测试用例中进行测试。小方法是可测试性、可读性和可维护性的关键。谢谢您将尝试上述建议。您对代码的测试满意吗?如果您不需要更多解释,请不要忘了结束您的问题:)谢谢您将尝试上述建议你对你的代码测试满意吗?如果你不需要更多的解释,别忘了结束你的问题:)
public function testValidationOk()
{
$input = array('name' => 'John', 'email' => 'john@gmail.com');
$errorsArray = MyClass::validation($input);
assertCount(0, $errorsArray);
}
public function testValidationFailWithoutName()
{
$input = array('name' => '', 'email' => 'john@gmail.com');
$errorsArray = MyClass::validation($input);
assertCount(1, $errorsArray);
}
public function testValidationFailWithInvalidEmail()
{
$input = array('name' => 'John', 'email' => 'john.com');
$errorsArray = MyClass::validation($input);
assertCount(1, $errorsArray);
}