如何使用phpunit测试函数,其中输入参数是从$\u POST提取的
我在某一点上坚持了很长时间 我必须测试一个函数,其中参数是从$\u POST全局数组中提取的 请参阅以下内容以获得更好的说明 我的函数如下所示如何使用phpunit测试函数,其中输入参数是从$\u POST提取的,phpunit,Phpunit,我在某一点上坚持了很长时间 我必须测试一个函数,其中参数是从$\u POST全局数组中提取的 请参阅以下内容以获得更好的说明 我的函数如下所示 function getUsers() { extract($_POST); $usersQry=$this->db->query("select user from user_table where org_type='".$orgType."'") return $user
function getUsers()
{
extract($_POST);
$usersQry=$this->db->query("select user from user_table where org_type='".$orgType."'")
return $usersQry;
}
在上面的中,$orgType是$\u POST数组中的索引
由于没有向函数getuser()传递参数,因此我无法从测试文件中以数组形式传递参数。请参见下文
$testdata=$this->users_model->getUsers($orgType);// i can not go for this option in test file
请发布一些备选方案,帮助我摆脱这个困境
谢谢。从技术上讲,在调用getUsers()之前,没有什么可以阻止您更改测试代码中的$\u POST。它只是一个数组$_POST['orgType']=有些东西可以用
您可能还希望启用backupGlobals,如下所述:您提供的代码有很多错误,因此很难进行测试
extract
function getUsers($post = null)
{
if (null === $post) {
$post = $this->getSanitizedPost();
}
if (isset($post['orgType']) {
throw new Exception('Missing required parameter…');
}
$orgType = $post['orgType'];
$usersQry = $this->db->query("select user from user_table where org_type='".$orgType."'");
return $usersQry;
}
/**
* Assert exception…
*/
function testHasRequiredParamter()
{
$post = array('param1'=>'val1');
$users = $this->tested->getUsers($post);
...
}
为什么不能将参数传递给getUsers呢?@Anti建议的内容比从类中的
$\u POST
获取内容要干净得多。如果可能的话,考虑一下改变程序的结构,我已经提到过,我不能将参数从测试文件传递给GETUSER()。即使是我也不能改变程序的结构,因为我没有编写代码。因此,一些替代方案将很方便。