Se moquant d'une dépendance sur un fichier de propriétés

Je suis en train d'écrire un test unitaire qui consiste à utiliser le code de legs. Problème est, de ce que je peux dire, l'héritage de code utilise une paire clé/valeur à partir d'un fichier de propriétés pour initialiser l'une de ses dernières privée statique membres, et je n'ai pas la moindre de l'endroit où cette propriété de fichier (de l'ensemble de l'application est assez énorme).

Donc, dans mon test, je veux faire quelque chose comme ceci (à l'aide Mockito):

LegacyClass legacyClass = mock(LegacyClass.class);

Je finis par obtenir un ExceptionInInitializationError qui indique qu'il ne peut pas trouver une clé de propriété.

Dans LegacyClass.java, il y a:

private static final int LEGACY_PROPERTY = 
    Integer.parseInt(LegacyPropertyManager.getProp("legacy.property.key"));

Est-il un moyen d'écrire un test qui utilise cet héritage de la classe, même si la propriété de clé, il cherche n'existe pas? Peut-il se moque de lui en quelque sorte?

  • Ajoutez votre propre fichier de propriétés pour le test unitaire comme here
  • Mais le problème c'est que c'est l'héritage de la classe qui utilise la propriété - comment faire LegacyClass utiliser mon propre fichier de propriétés lors de l'instanciation à la place de celui examiné par LegacyPropertyManager?
  • Astucieux en effet; mais je ne sais pas trop comment l'utiliser mockStatic pour se moquer de getProp de sorte qu'il utilise mon fichier de propriétés. Dans mon unité de test, j'ai essayé moqueur LegacyPropertyManager et puis en établissant une when(...).thenReturn(...) comme dans l'exemple que vous avez associé, mais il semble que LegacyClass utilise toujours l'original. Y avait-il une étape supplémentaire que je dois faire?
  • La promotion d'une réponse à lui donner son propre thread.
InformationsquelleAutor dashik | 2013-08-01