Frage

Meine Anwendung stellt eine Verbindung zu db und bekommt Baum von Kategorien von hier. Im Debug-Regime kann ich diesen großen Baum Objekt sehen, und ich dachte nur, der Fähigkeit, auf der Festplatte dieses Objekt irgendwo speichern in Test-Stubs zu verwenden. Wie folgt aus:

mockedDao = mock(MyDao.class);
when(mockedDao.getCategoryTree()).thenReturn(mySavedObject);

mySavedObject Unter der Annahme, - ist riesig genug, so dass ich nicht will, dass es manuell generieren oder spezielle Generation Code schreiben. Ich möchte nur in der Lage sein, um es während des Debug-Sitzung irgendwo serialisiert und speichern Sie es deserialisieren und übergeben Tests thenReturn. Gibt es eine standardisierte Möglichkeit, dies zu tun? Wenn nicht, wie ist besser, solchen Ansatz zu implementieren?

War es hilfreich?

Lösung

I tun lieben Ihre Idee, es ist genial!

Ich bin mir nicht bewusst, eine Bibliothek, die diese Funktion aus der Box bieten würde. Sie können mit ObjectOutoutStream und ObjectInputStream (dh die Standard-Java-Serialisierung) versuchen, wenn Ihre Objekte alle Seriablizable implementieren. Normalerweise tun sie es nicht. In diesem Fall könnten Sie mehr Glück mit XStream oder einer seiner Freunde.

Andere Tipps

Wir spotten in der Regel die gesamte DB solche Szenarien sind, die Wiederverwendung (und Prüfung implizit), um den Code, um die Kategorien aus der DB zu laden.

Insbesondere unsere Unit-Tests laufen gegen eine In-Memory-Datenbank ( hsqldb ) , die initialisieren wir vor jedem Test ausführen, indem Testdaten zu importieren.

Haben Blick auf Dynamische Managed Beans - dies bietet eine Möglichkeit, Werte eines laufenden zu ändern Java-Anwendung. Vielleicht gibt es einen Weg ein MBean zu definieren, die Ihren Baum hält, um den Baum lesen, speichert sie irgendwo und injiziert es später noch einmal.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top