database testing in php using phpunit,simpletest on api haveing stored procedure
或者如何与api函数调用之前和之后的xml文件进行比较(该函数包含存储过程) 意味着我能够使用mysql-dump获得之前的状态,但之后却没有获得xml状态之后的瞬间
对不起英语,但我尽力了 感谢帮助朋友
必须为api函数编写单元测试测试
public function delete($userId)
{
// this function calls a stored procedure
$sql = "CALL Delete_User_Details(:userId)";
try {
$db = parent::getConnection();
$stmt = $db->prepare($sql);
$stmt->bindParam("userId", $userId);
$stmt->execute();
$id = $stmt->fetchObject();
if ($id == null) {
$delete_response->createJSONArray("DATABASE_ERROR",0);
} else {
$delete_response->createJSONArray("SUCCESS",1);
}
} catch (PDOException $e) {
$delete_response->createJSONArray("DATABASE_ERROR",0);
}
return $delete_response->toJSON();
}
我已经写了这个单元测试,现在想为它写一个dbunit
public function testDeleteUser()
{
$decodedResponse = $response->json();
$this->assertEquals($response->getStatusCode(), 200);
$this->assertEquals($decodedResponse['status']['StatusMSG'], 'SUCCESS');
$this->assertEquals($decodedResponse['status']['Code'], '1');
}
帮助伙伴
答案 0 :(得分:0)
你可以通过调用像
这样的查询来简单地测试它 $sql = "select * from user";
并将其与BeforeDeleteUser.xml进行比较
Call Ur存储过程
$sql = "CALL Delete_User_Details(:userId)";
对于后案例,只需重复前一次
$sql = "select * from user";
并将其与AfterDeleteUser.xml进行比较
如果您在BeforeDeleteUser.xml中有5个用户并且结果为true并且在调用CALL Delete_User_Details(:userId)存储过程之后,看到逻辑非常简单,则AfterDeleteUser.xml应该只包含4个用户(或者可能包含idDelete字段)为0取决于你的实施)