Die Verspottung der Abhängigkeit von einer property-Datei

Ich bin versucht, zu schreiben unit Tests, die beinhaltet die Verwendung von legacy-code. Problem ist, was ich sagen kann, ist, den legacy-code verwendet ein Schlüssel/Wert-paar aus einer property-Datei zu initialisieren eines seiner final static private Mitglieder, und ich habe nicht die leiseste, wo dieser Eigenschaft-Datei (die gesamte Anwendung ist Recht groß).

So, in meinem test habe ich wollen, so etwas zu tun (mit Mockito):

LegacyClass legacyClass = mock(LegacyClass.class);

Ich am Ende immer ein ExceptionInInitializationError gibt nicht finden können, die eine bestimmte Eigenschaft key.

In LegacyClass.java gibt es:

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

Gibt es eine Möglichkeit, einen test schreiben, nutzt diese legacy-Klasse, auch wenn die Eigenschaft key-es sucht nicht vorhanden ist? Kann es sein, verspottet irgendwie?

Fügen Sie Ihre eigene properties-Datei für den unit-test wie here
Aber das problem ist, dass es die legacy-Klasse verwendet, die die Eigenschaft - wie würde LegacyClass meine eigene properties-Datei bei der Instanziierung statt ein schaute durch LegacyPropertyManager?
Wirklich schlau; aber ich bin mir nicht sicher, wie Sie Sie verwenden mockStatic zu verspotten getProp so, dass er mein Eigentum Datei. In meinem Gerät zu testen, habe ich versucht, Spott LegacyPropertyManager und dann die Einrichtung eines when(...).thenReturn(...) wie in dem Beispiel, das Sie verlinkt sind, aber es sieht aus wie LegacyClass verwendet immer noch das original. War es ein extra Schritt, den ich tun müssen?
Förderung, um eine Antwort zu geben, die es seinen eigenen thread.

InformationsquelleAutor dashik | 2013-08-01

Schreibe einen Kommentar