Wie simulieren Sie eine Methode in eine ENUM-Klasse?

Arbeite ich auf das schreiben von JUNIT-Testfall für mein unten ENUm-Klasse. Meine unten Klasse wird nur geben Sie mir den Hostnamen für die aktuelle Maschine, wo ich bin mit meinem code. Während ich Schreibe, JUNIT-test, wie kann ich verspotte die unten Klasse, so dass ich ändern kann getHostName() - Methode, Wann immer ich will, so dass wenn immer ich rufe getDatacenter() es zurückgeben kann mich, was auch immer hostname bin ich vorbei lustig. Ich will nicht, um es als eingestellt.

Ich will einfach nur, um zu testen, bestimmten Fällen, während Sie ändern Sie den Hostnamen, während lustig.

public enum DatacenterEnum {
    DEV, DC1, DC2, DC3;


    public static String forCode(int code) {
    return (code >= 0 && code < values().length) ? values()[code].name() : null;
    }
    private static final String getHostName() {
        try {
            return InetAddress.getLocalHost().getCanonicalHostName().toLowerCase();
        } catch (UnknownHostException e) {
            s_logger.logError("error = ", e);
        }

        return null;
    }

    public static String getDatacenter() {
        return getHostName();
    }
}
  • Diese Methode werden in der enum-Klasse? Es scheint keine Verweise zwischen den enum-Werte und die Methoden.
  • Ich habe entfernt die Informationen aus dem code.. Es gibt einige Methoden die sich mit diesen details entsprechend aus der hostname.. Also mein Haupt-Anziehungspunkt war die Verspottung getHostName-Methode, um die anderen codes revovlve..
  • stackoverflow.com/a/9722244/516167
InformationsquelleAutor | 2014-01-18
Schreibe einen Kommentar