Maison >Java >javaDidacticiel >Comment se moquer d'une méthode statique unique et renvoyer un objet personnalisé à l'aide de PowerMock ?

Comment se moquer d'une méthode statique unique et renvoyer un objet personnalisé à l'aide de PowerMock ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-09 20:33:18388parcourir

How to Mock a Single Static Method and Return a Custom Object Using PowerMock?

PowerMock : se moquer d'une méthode statique unique pour renvoyer un objet

Lorsque vous vous moquez de méthodes statiques en Java, vous pouvez rencontrer le besoin de stub sélectivement une méthode spécifique et de renvoyer un objet personnalisé. PowerMock fournit les fonctionnalités nécessaires pour y parvenir.

Activation de la simulation statique

Pour se moquer des méthodes statiques, vous devez d'abord activer la simulation statique pour la classe cible à l'aide de PowerMockito.mockStatic(). Cependant, la stratégie de réponse par défaut attribuée à cette méthode peut entraîner des erreurs d'incompatibilité de type si la classe contient plusieurs méthodes statiques avec différents types de retour.

Mocking and Stubbing

Au lieu de cela, vous devez utiliser celle -surcharge d'arguments de mockStatic() pour activer la simulation statique, puis utilisez PowerMockito.when() et thenReturn() pour spécifier le comportement souhaité pour la méthode individuelle. Cela vous permet de définir des valeurs de retour personnalisées pour chaque méthode stubbée.

Exemple d'utilisation

Considérez une classe avec deux méthodes statiques, l'une renvoyant une chaîne et l'autre un int :

class ClassWithStatics {
  public static String getString() {
    return "String";
  }

  public static int getInt() {
    return 1;
  }
}

Pour remplacer la méthode getString() pour renvoyer "Bonjour !", vous feriez la suivant :

PowerMockito.mockStatic(ClassWithStatics.class);
when(ClassWithStatics.getString()).thenReturn("Hello!");
System.out.println("String: " + ClassWithStatics.getString());

Notez que la méthode getInt() n'est pas explicitement supprimée. Il utilisera le comportement par défaut consistant à renvoyer 0.

Conclusion

En utilisant la combinaison correcte de techniques de simulation statique et de stubbing, vous pouvez vous moquer de manière sélective d'une seule méthode statique et renvoyer un objet dans PowerMock. Cela vous permet de tester et d'isoler le comportement spécifique d'une méthode statique dans votre code Java.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn