Bonjour tout le monde

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
$router->post('/callMethode', 'ValidateControllers@methodOne');
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
3
4
5
6
7
8
 
public function methodOne()
    {
        if ($this->methodTwo()) {
            return response('ok');
        }
        return response('error');
    }
La "methodOne" retourne
- responce 'error' si 'methodTwo' est a false
- responce 'ok' si 'methodTwo' est a true

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
public function methodTwo()
    {
        return false;
    }
La "methodTwo" retourne toujours 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.

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());
    }
}
Voici la solution que j'essaie d'appliquer mais qui me génère un 404 quand j'instance $mock

Une idée ou une solution plus appropriée ?