2011-10-21 9 views
0

私はユーザー確認のためのログインページにクラスを持っていますが、ここでどのようにユニットテストを実装できますか? これは私のログインページのPHPコードです:php、mysql Db unittesting

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をテスト。