Frage

Ich habe eine benutzerdefinierte Implementierung der Map-Schnittstelle, die einige ausgefallene Sachen tut, wie faul Auswertung von Funktionen. Die Umsetzung soll nach dem Bau von außen (zum Beispiel keines put () und putAll () Methoden unterstützt)

unveränderliche erscheinen

ich es sieht aus wie es in den grundlegendsten Bedingungen funktioniert. Da es sehr komplex ist, bin ich sicher, muss es Tonnen Bugs lauern w.r.t Thread-Sicherheit, unregelmäßiger Reihenfolge der Operationen und vieles mehr ..

Da der Vertrag der Map-Schnittstelle ist gut definierte ich bin sicher, es muss eine generische Test Sammlung vorhanden sind, die Ecke Fällen überprüft, Thread-Sicherheit usw.

Ich habe gehört, dass Google Kollektionen laufen über 25.000 Unit-Tests für ihre Bibliothek. Ist es möglich, sie irgendwo herunterladen?

War es hilfreich?

Lösung

Die Google Kollektionen zip ihre Tests enthält. Es sollte in ein Google-collect-testfw Glas sein.

Andere Tipps

Sie möchten, um zu sehen, ob Google Sammlungen hat etwas, das Ihren Bedürfnissen entspricht so müssen Sie nicht Ihre eigene Karte unterstützen. Siehe zum Beispiel, MapMaker

private Map<Key, Graph> createMap() {
  ConcurrentMap<Key, Graph> graphs = new MapMaker()
     .concurrencyLevel(32)
     .softKeys()
     .weakValues()
     .expiration(30, TimeUnit.MINUTES)
     .makeComputingMap(
        new Function<Key, Graph>() {
          public Graph apply(Key key) {
            return createExpensiveGraph(key);
          }
        });
  return Collections.unmodifiableMap(graphs);
}

Beachten Sie, dass die Karte nicht angezeigt völlig unveränderlich nach dem Bau, eine map.get(key) mit einem zuvor unsichtbaren Schlüssel da tun wird sich ändern, was von Map.entrySet() gesehen ist

Wenn Sie eine benutzerdefinierte Karte Implementierung und wollen guten Platz schreiben für Ihre Tests, Adams Vorschlag der Verwendung von Google Kollektionen von MapInterfaceTest ist gut.

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