php、mysql数据库和单元测试
我在登录页面中有一个类用于检查用户,这里如何实现单元测试? 这是我的登录页面php代码: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
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;
}
}