在我的网络服务器上我有一个PHP文件,它对数据库执行查询,然后返回我在Android应用程序中使用的JSON。
LoginUser.php
require "conn.php";
header('Content-Type: application/json');
$json = file_get_contents('php://input', true);
$json = json_decode($json, TRUE);
$type = $json["type"];
$mail = $json['email'];
$pw= $json['password'];
$mysql_qry = "SELECT * FROM utenti WHERE email like '$mail' and password like '$pw'";
$result = mysqli_query($conn, $mysql_qry);
if(mysqli_num_rows($result) > 0){
$res['Result'] = "true";
$res['Status'] = "Login OK";
//do other stuf...
}else{
$res['Result'] = "false";
$res['Status'] = "Login FAILED";
}
echo json_encode($res);
return json_encode($res);
?>
现在我必须用PHPUnit编写一个单元测试来检查响应的格式是否正确。我尝试了不同的东西,现在我有这样的事情:
test.php的
<?php
use PHPUnit\Framework\TestCase;
final class TestLogin extends TestCase{
public function testCorrectLogin(){
$this->post(
[mail => "prova@gmail.com", password=> "111"]
)->seeStatusCode(200);
include '/var/www/html/pizzino_php/loginU.php';
}
}
?>
但它不起作用。我该怎么办?
答案 0 :(得分:0)
那里有90%,PHP documentation状态返回包含(或必需)的文件中的值将返回一个值,就像它是一个函数一样。
此外,还可以从包含的文件中返回值。你可以采取 包含调用的值与正常函数的值相同。
<?php
use PHPUnit\Framework\TestCase;
final class TestLogin extends TestCase{
public function testCorrectLogin(){
$this->post(
[mail => "prova@gmail.com", password=> "111"]
)->seeStatusCode(200);
$json = json_decode( include '/var/www/html/pizzino_php/loginU.php' );
// Now do your checks on $json
}
}
?>
如果您想阻止回显的字符串显示,可以在包含行之前和之后使用ob_start()
和ob_end_clean()
。