我有一个类在登录页面检查用户,在这里我如何实现单元测试?这是我登录页面的php代码:
class login {
function checkuserlogin() {
$username = $_REQUEST['username'];
$pwd = $_REQUEST['pwd'];
$result = mysql_query($selQry);
$resultset = mysql_num_rows($result);
while($row = mysql_fetch_array($result))
{
if(($row['username']==$username && $row['password']==$password )|| ($row['email'] == $username && $row['password']==$password)) {
do.. codes
}
else {
do.. codes
}
}
}
}
$login = new login();
$login->checkuserlogin();
帮助我,
你试过phpUnit吗?http://www.phpunit.de/manual/current/en/
对数据库测试有一定的支持
您可以通过重构类并将授权代码移动到方法中来测试类,如下所示:
class login {
function checkuserlogin() {
if (isUserAuthorized($_REQUEST['username'], $_REQUEST['pwd']) {
do...codes
} else {
do...codes
}
}
function isUserAuthorized($username, $pwd) {
$result = mysql_query($selQry);
$resultset = mysql_num_rows($result);
while($row = mysql_fetch_array($result)) {
if(($row['username']==$username && $row['password']==$pwd )|| ($row['email'] == $username && $row['password']==$pwd)) {
return true;
}
}
return false;
}
}
,然后单独测试isUserAuthorized
,而不用担心mock请求。