
Допустим, мы хотим протестировать компонент TransporterComponent, который использует модель Transporter для предоставления функциональности для других контроллеров. Мы будем использовать четыре файла:
Поскольку CakePHP не позволяет импортировать модели непосредственно в компоненты, то нам понадобится контроллер для доступа к данным модели.
Если функция startup() компонента выглядит так:
<?public function startup(&$controller){           
$this->Transporter = $controller->Transporter;   }
?>
тогда мы можем просто создать фиктивный класс:
<?class FakeTransporterController {} ?>
и определить значения таким образом:
<?$this
->TransporterComponentTest = new TransporterComponent(); $controller = new FakeTransporterController(); $controller->Transporter = new TransporterTest(); $this->TransporterComponentTest->startup(&$controller); ?>
Просто создадим класс, который расширяет CakeTestCase и начнем писать тесты.
<?class TransporterTestCase extends CakeTestCase {    var 
$fixtures = array('transporter');      function 
testGetTransporter() {           
$this->TransporterComponentTest = new TransporterComponent();           
$controller = new FakeTransporterController();           
$controller->Transporter = new TransporterTest();           
$this->TransporterComponentTest->startup(&$controller);    
          
$result = $this->TransporterComponentTest->getTransporter("12345", "Швеция", "54321", "Швеция");           
$this->assertEqual($result, 1, "SP наилучший для 1xxxx-5xxxx");            
          
$result = $this->TransporterComponentTest->getTransporter("41234", "Швеция", "44321", "Швеция");           
$this->assertEqual($result, 2, "WSTS наилучший для 41xxx-44xxx");    
          
$result = $this->TransporterComponentTest->getTransporter("41001", "Швеция", "41870", "Швеция");           
$this->assertEqual($result, 3, "GL наилучший для 410xx-419xx");    
          
$result = $this->TransporterComponentTest->getTransporter("12345", "Швеция", "54321", "Норвегия");           
$this->assertEqual($result, 0, "Нет перевозчика в Норвегию");            }
}
?>
<< Тестирование помощников | Web тестирование – тестирование отображений >>