【发布时间】:2017-01-26 16:43:32
【问题描述】:
我正在尝试使用 PHPUnit 为 PHP 项目编写单元测试。该项目主要使用 SQL 数据库。
我拥有的任何函数都使用 SQL,但我不知道如何开始编写测试。我很难找到要执行的测试,因为它们都与 SQL 一起工作,而且它们中的大多数不返回任何内容,而只是操纵数据库和会话变量。
这是创建测试的尝试之一:
<?php
require_once '../../test/admin/admin.php';
class checkIsAdminTest extends PHPUnit_Framework_TestCase {
private $ID = '123456789';
private $Class = 0;
private $Pass = 'Aa12345678';
private $First = "Bla";
private $Last = "Bla";
private $Email = "bla@bla.bla";
protected function setUp() {
parent::setUp();
$servername = "localhost";
$username = "root";
$password = "";
$dbname = 'trivia';
$conn = mysqli_connect($servername, $username, $password, $dbname);
$sql = "INSERT INTO `users` (`ID`, `Class`, `Password`, `First`, `Last`, `Email`) VALUES ('" . $this->ID . "', '" . $this->Class . "', '" . sha1($this->Pass) . "', '" . $this->First . "', '" . $this->Last . "', '" . $this->Email . "');";
mysqli_query($conn, $sql);
session_start();
$_SESSION["ID"] = $this->ID;
}
protected function tearDown() {
parent::tearDown();
}
public function __construct() {
}
public function testCheckIsAdmin() {
$this->assertEquals($this->Class == 0 ? False : True, checkIsAdmin());
}
}
?>
该函数检查名为“Users”的表中记录的“Class”字段的值为0或1,如果为1则返回“true”,否则返回false。
【问题讨论】:
标签: php mysql unit-testing