2015-07-27 4 views
0

Je n'ai qu'un contrôleur et point de vue, je veux moquer une requête HTTP pour tester ce contrôleur, j'utilise FuelPHP, espère que quelqu'un peut me donner quelques conseils ou démocomment écrire un phptest pour contrôleur FuelPHP

class Controller_Index extends Controller_Template{ 
    public function action_index(){ 
     $view = View::forge('index'); 
     $this->template->content = $view; 
    } 
} 

J'écris comme ça

class Test_Controller_index extends TestCase{ 
    public function TestController(){ 
     $expected = View::forge('index'); 
     $response = Request::forge('index') 
         ->set_method('GET') 
         ->execute() 
         ->response(); 
     $assertValue = $response->body->content; 
     $this->assertSame($expected, $assertValue); 
    } 
} 

php résultat du test d'huile

There was 1 failure: 
1) Warning 
No tests found in class "Test_Controller_index". 

ce qui ne va pas

+0

il me trouble, hou puis-je faire une demande? – yang

+0

Si vous lisez votre message d'erreur, vous verrez que le framework de test ne détecte aucun test. Essayez d'appeler votre méthode de test 'testController()' et voyez si cela l'oblige à s'exécuter. – Uru

+0

Aussi, je remarque que vous testez seulement que la vue se charge. Ce type de test est inutile car tout ce que vous faites est d'affirmer que le framework peut charger une vue, qui est couverte par les tests du framework. – Uru

Répondre

0

Tous les tests unitaires dans fuelphp doivent prendre la forme de test_ ou ils ne seront pas reconnus.

Essayez ceci: (pas un autre nom de fonction)

class Test_Controller_index extends TestCase{ 
    public function test_controller(){ 
     $expected = View::forge('index'); 
     $response = Request::forge('index') 
         ->set_method('GET') 
         ->execute() 
         ->response(); 
     $assertValue = $response->body->content; 
     $this->assertSame($expected, $assertValue); 
    } 
}