Maison > Questions et réponses > le corps du texte
P粉8850351142023-09-03 17:16:49
D'accord, j'ai trouvé la solution, mais quoi qu'il en soit, je suis curieux de savoir si quelqu'un a aussi ce problème
Ma solution à ce problème est :
public function testRealExternalMethod() { // Create a mock of the dependency that will be used by the class $mockDependency = $this->createMock(Dependency::class); // in this case we need to use a partial mock because we have an internal method $mockMyClass = Mockery::mock( MyClass::class, [$mockDependency, $parameter1] ) ->makePartial(); $responseInternalMethod = ['needed data']; $mockMyClass->shouldReceive('internalMethod') ->andReturn($responseInternalMethod); $result = $mockMyClass->realExternalMethod($parameter2, $parameter3); }La solution dans ces cas est de créer directement une instance fictive de ma classe et de transmettre tous les paramètres requis par le constructeur en tant que dépendances ou données. Continuez ensuite la boucle de test en utilisant la classe fictive comme classe réelle.