Bonjour,
J'essai d'utiliser les tests unitaires mais le manque de docs à ce
sujet est un réel frein (la plupart des articles sont déjà dépassés).
Je n'ai pas encore tout saisie au sujet des concepts unitaires mais je
pense avoir l'essentiel parcontre le scenario me laisse encore très
perplexe (surtout pour les fixtures).
Tant bien que mal j'ai réussis à avoir des tests pour les Models.
Parcontre je bloque pour les Controllers.
Pour infos :
cake version : cake_1.2.0.6311-beta
Model, Controller et Unit test fraichement sortis d'un "bake".
On considère :
Model : Page
Controller : PagesController
//file : app/controller/pages_controller.php
class PagesController extends AppController {
var $name = 'Pages';
var $helpers = array('Html', 'Form');
function index() {
$this->Page->recursive = 0;
$this->set('pages', $this->paginate());
}
function view($id = null) {
if (!$id) {
$this->Session->setFlash(__('Invalid Page.', true));
$this->redirect(array('action'=>'index'));
}
$this->set('page', $this->Page->read(null, $id));
}
//...
}
?>
Puis les tests sur le controller :
//file : app/tests/cases/controllers/pages_controller.test.php
<?php
App::import('Controller', 'Pages');
class PagesControllerTestCase extends CakeTestCase {
var $TestObject = null;
function setUp() {
$this->TestObject = new PagesController();
}
function tearDown() {
unset($this->TestObject);
}
function testIndex() {
$result = $this->TestObject->index();
$expected = true;
$this->assertEqual($result, $expected);
}
function testView(){
$result = $this->TestObject->view(1);
$expected = true;
$this->assertEqual($result, $expected);
}
}
?>
Le tests ne se font pas correctement (à quelque chose près cela sort
direct du bake), les messages d'erreurs sont respectivement :
Fatal error: Call to undefined method stdClass::findCount() in MyCake/
cake/libs/controller/controller.php on line 960
et
Fatal error: Call to a member function read() on a non-object in
Mycake/app/controllers/pages_controller.php on line 23
Ceci me fait dire qu'il test bien le controller (c'est déjà ça) mais
le test ne peut pas accéder aux méthodes étendues au controller
(read() ) ou pas completement (paginate() ) et à l'indentique avec
setFlash()
J'ai fais quelques essais hasardeux ... mais je trouve pas comment
charger les méthodes nécessaires.
J'espère que quelqu'un aura un petit peu de sa connaissance à
partager.
Thanks in advanceeuu.
--~--~---------~--~----~------------~-------~--~----~
Groupe "Cakephp-fr".
Adresse : [email protected]
Pour résilier : [EMAIL PROTECTED]
Pour les options : http://groups.google.com/group/cakephp-fr?hl=fr
-~----------~----~----~----~------~----~------~--~---