2015-08-17 4 views
0

Я знаю, что я не могу расширить два класса в php, но мне интересно, если мне нужно протестировать класс с PHPUnit_Framework_TestCase, но класс также взаимодействует с базой данных, и поэтому мне нужно использовать PHPUnit_Extensions_Database_TestCase. Могу ли я использовать оба в одном классе тестов, или мне нужно иметь два отдельных?Расширение нескольких классов phpunit

Это часть класса я пытаюсь тест:

<?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

Это уже продолжается PHPUnit_Framework_TestCase.

abstract class PHPUnit_Extensions_Database_TestCase extends PHPUnit_Framework_TestCasesee definition

Хотя, на самом деле все это добавить является use PHPUnit_Extensions_Database_TestCase_Trait; Таким образом, вы можете просто добавить эту строку «использовать», и ваш TestClass продлить первоначальный TestCase, как обычно, и до сих пор имеют все функциональные возможности и Database_TestCase.

Смежные вопросы