我知道我无法在php中扩展两个类但我想知道,如果我需要使用PHPUnit_Framework_TestCase
测试一个类,但该类还使用了数据库进行交互,所以我需要使用PHPUnit_Extensions_Database_TestCase
。
我可以在同一个测试类中使用它们,还是需要两个独立的测试类?
这是我要测试的课程的一部分:
<?php
use Slim\Slim;
/**
* All ad rules to match against
*/
class AdRules {
public $site;
public $placement;
protected $db = null;
protected $filter = array();
function __construct(){
}
/*some more methods*/
function getRules() {
$DBH = $this->getDbh();
$where = $this->getWhereClause();
if (!empty($where)) {
$where = 'WHERE '.$where;
}
$query = "select * from rules {$where} order by site, placement, dof_count asc";
try {
$STH = $DBH->query($query);
$rules = $STH->fetchAll(PDO::FETCH_CLASS, 'AdRule');
}
catch(PDOException $e) {
Slim::getInstance()->log->error($e);
}
return $`enter code here`rules;
}
}
答案 0 :(得分:1)
它已经扩展了PHPUnit_Framework_TestCase。
abstract class PHPUnit_Extensions_Database_TestCase extends PHPUnit_Framework_TestCase
see definition
虽然实际上所有添加的内容都是use PHPUnit_Extensions_Database_TestCase_Trait;
所以你可以添加&#39;使用&#39; line并让你的testclass像往常一样扩展原始TestCase,并且仍然具有Database_TestCase的所有功能。