php、mysql数据库和单元测试

php、mysql数据库和单元测试,php,Php,我在登录页面中有一个类用于检查用户,这里如何实现单元测试? 这是我的登录页面php代码: class login { function checkuserlogin() { $username = $_REQUEST['username']; $pwd = $_REQUEST['pwd']; $result = mysql_query($selQry); $resultset = mysql_num_rows($result); while

我在登录页面中有一个类用于检查用户,这里如何实现单元测试? 这是我的登录页面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
            }

          } 

   }
}

帮帮我, 提前谢谢。

您试过phpUnit吗

它对数据库测试有一些支持

您可以通过重构类并将授权代码移动到方法来测试类,如下所示:

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
,而不用担心模拟请求

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;
      } 
}