扩展多个phpunit类

时间:2015-08-17 12:55:37

标签: phpunit

我知道我无法在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;
      }
    }

1 个答案:

答案 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的所有功能。