Bonjour tout le monde
J'ai une route /callMethode qui fait appel a la method : "methodOne" de ma classe "ValidateControllers".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $router->post('/callMethode', 'ValidateControllers@methodOne');
La "methodOne" retourne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 public function methodOne() { if ($this->methodTwo()) { return response('ok'); } return response('error'); }
- responce 'error' si 'methodTwo' est a false
- responce 'ok' si 'methodTwo' est a true
La "methodTwo" retourne toujours false
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 public function methodTwo() { return false; }
Donc le retours de la route /callMethode est toujours une responce 'error'.
Seulement dans mes tests unitaires avant d'appeler la route /callMethode j'aimerais changer le retour de la method "methodTwo" par true.
Voici la solution que j'essaie d'appliquer mais qui me génère un 404 quand j'instance $mock
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 class ValidateControllersTest extends TestModelCase { public function testOneMethod() { $mock = $this->prophesize(ValidateControllers::class); $mock->methodTwo()->shouldBeCalled()->willReturn(true); $this->app->instance(ValidateControllers::class, $mock); $request = $this->call('POST', '/callMethode'); $this->assertEquals('ok', $request->getContent()); } }
Une idée ou une solution plus appropriée ?
Partager