246 votes

Mocking d'une fonction python basée sur les arguments d'entrée

Nous avons utilisé Mock pour python depuis un moment.

Maintenant, nous avons une situation dans laquelle nous voulons simuler une fonction

def foo(self, my_param):
    #do something here, assign something to my_result
    return my_result

Normalement, la façon de simuler cela serait (en supposant que foo fasse partie d'un objet)

self.foo = MagicMock(return_value="mocked!")

Même, si j'appelle foo() plusieurs fois, je peux utiliser

self.foo = MagicMock(side_effect=["mocked once", "mocked twice!"])

Maintenant, je suis confronté à une situation dans laquelle je veux retourner une valeur fixe lorsque le paramètre d'entrée a une valeur particulière. Donc si disons que "mon_param" est égal à "quelque chose" alors je veux retourner "mon_froid_mock".

Cela semble être disponible sur mockito pour python

when(dummy).foo("something").thenReturn("my_cool_mock")

J'ai cherché comment réaliser la même chose avec Mock, sans succès ?

Des idées ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X