我已经坚持了一段时间
我必须测试一个从$ _POST全局数组中提取参数的函数。
请查看以下内容以获得更好的说明
我的功能看起来像这样
function getUsers()
{
extract($_POST);
$usersQry=$this->db->query("select user from user_table where org_type='".$orgType."'")
return $usersQry;
}
上面 $ orgType 中的是$ _POST数组中的索引。
因为没有参数传递给函数 getuser()我无法将参数作为数组从测试文件中传递。见下文
$testdata=$this->users_model->getUsers($orgType);// i can not go for this option in test file
请发布一些替代方案并帮助我摆脱这个关键时刻。
感谢。
答案 0 :(得分:1)
从技术上讲,在调用getUsers()之前,没有什么能阻止你在测试代码中更改$ _POST。它只是一个阵列。 $ _POST ['orgType'] =有效的东西。
您可能还想启用backupGlobals,如下所述:www.phpunit.de
答案 1 :(得分:1)
您提供的代码非常多,所以很难测试。
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);
...
}