Frage

Wie würden Sie Unittest eine Safe-Veröffentlichung Garantie in Java?

Um genau zu sein:

Ich habe eine Cache-Schnittstelle, die eine Methode getOrLoad (K-Taste, Objectloader) hat. Das Ding ist, wenn ein Cache kann nicht ein Objekt für den angegebenen Schlüssel findet, dann muss es es aus der Object Instanz laden. Allerdings ist der Cache zu gewährleisten erforderlich, dass der Akt des ein Objekt aus dem Lader geladen und in den Cache, stellt eine sichere Veröffentlichung setzen.

Ich bin jetzt in der Mitte einen generischen JUnit-Tests für diese Cache-Schnittstelle des Schreibens und ich frage mich, wie ich testen, ob die Cache-Implementierungen auf diese sichere Veröffentlichung Garantie einzuhalten.

Irgendwelche Ideen? Der eigentliche Code ist im Test-systest Modulteil des Code-Repository bei rel="nofollow Sie will bei den realen Dateien stecken.

Andere Tipps

Vielleicht können Sie verwenden ConTest zumindest geben ein wenig mehr Vertrauen, dass Ihr Code korrekt ist.

Sie müssen ein paar Tests implementieren, die mehrere Threads gleichzeitig ausgeführt werden. ConTest wird dann die Wahrscheinlichkeit erhöhen, dass ein Concurrency Fehler durch Instrumentieren Byte-Code tatsächlich aufgedeckt wird (Hinzufügen heuristisch gesteuerten bedingte Schlaf und Ausbeute Anleitung).

Eigentlich erhalte eine Fehlermeldung aufgrund von unsicheren Veröffentlichung ist sehr schwierig (wenn jemand weiß, wie, lassen Sie mich wissen). Statische Analyse ist die beste Wahl für eine automatisierte Lösung. Ich würde wieder in Code-Review-Stick, und nicht sich Gedanken darüber zu Unrecht.

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