Peut être que cela pourra aider du monde :
Il suffisait d'aller jeter un oeil dans la direction de testAction() :

Je n'ai pas encore tout pris en main néanmoins j'ai quelques résultats
positifs (debug retourne quelque chose :D)

Le cas de test mis à jour :


<?php
//file : app/tests/cases/controllers/pages_controller.test.php
class PagesControllerTestCase extends CakeTestCase {
        function testIndex(){
                $result = $this->testAction('/pages/index', array('return' =>
'vars', 'method' => 'get'));
                debug($result);
        }
}
?>

Des infos ici : http://groups.google.fr/group/cake-php/search?q=testAction+1.2
(dans les premiers liens)

Apparement l'ajout de fixtures est pas top encore (ou alors j'ai fais
une erreur).
avec var $fixtures = array('page_test'); et $this->testAction('/pages/
index, array('return' => 'vars', 'method' => 'get', 'fixturize' =>
true));

Il m'insère bien les données du fixtures mais aussi celles de la base
de données principale ce qui n'est évidemment pas pratique..



On Jan 11, 7:40 pm, esion <[EMAIL PROTECTED]> wrote:
> 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
-~----------~----~----~----~------~----~------~--~---

Répondre à