2011-10-21 82 views
0

我在登錄頁面有一個類來檢查用戶,這裏我該如何實現單元測試? 這是我的登錄頁面的PHP代碼:php,mysql Db單元測試

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(); 

幫幫我, 在此先感謝。

回答

2

您是否嘗試過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,而不用擔心嘲諷的請求。