我想用phpunit编写测试用例,用于以下模型功能。我是单位测试的初学者,请告诉我。
public function checkUserEmailExist($email)
{
$query = \registry::getDBHandler()->prepare("SELECT email FROM users WHERE email = :EMAIL");
$query->bindValue(":EMAIL", $email);
try{
$query->execute();
$result = ($query->fetchColumn());
} catch(PDOException $e) {
\debug::error('MySQL errno ' . $e->getCode() . ': "' . $e->getMessage() . '" when executing: ' . $query->queryString);
}
return $result;
}
答案 0 :(得分:0)
首先,您需要使用一些测试数据为数据库测试准备测试平台。您可以按照本教程执行此操作:
https://phpunit.de/manual/current/en/database.html
然后你可以写你的测试。假设您的checkUserEmailExist
方法位于名为Authentication
的类中。然后你的测试将如下所示:
<?php
class authenticationTest extends PHPUnit_Extensions_Database_TestCase
{
/**
* @test
*/
public function testCheckUserEmailExist ()
{
$actual = 'dummyemail@testdatabase.com';
$auth = new Authentication();
$expected= $auth->checkUserEmailExist($actual);
$this->assertEquals($expected->email, $actual);
}
}
您需要确保测试数据库的dummyemail@testdatabase.com
表中存在users
电子邮件。