Was ist eine gute Möglichkeit, TDD zu nutzen, um Thread-sicheren Code zu entfernen? Zum Beispiel, sagen, dass ich eine Factory-Methode haben, die faul Initialisierung nur eine Instanz einer Klasse erstellen verwendet, und senden Sie es danach:Verwenden von TDD zum Entfernen von threadsicherem Code
private TextLineEncoder textLineEncoder;
...
public ProtocolEncoder getEncoder() throws Exception {
if(textLineEncoder == null)
textLineEncoder = new TextLineEncoder();
return textLineEncoder;
}
Nun möchte ich einen Test in einem guten TDD Mode schreiben, die mich zwingt, Machen Sie diesen Code threadsicher. Insbesondere, wenn zwei Threads diese Methode gleichzeitig aufrufen, möchte ich nicht zwei Instanzen erstellen und eine löschen. Das ist leicht gemacht, aber wie kann ich einen Test schreiben, der mich dazu bringt?
Ich frage das in Java, aber die Antwort sollte breiter anwendbar sein.
Danke. Es ist heute Morgen aufgetaucht, als ich gerade eine solche Fabrik geschrieben habe. Es ist schon früher bei der Diskussion des doppelt überprüften Schließmechanismus vorgekommen, aber das war bevor SO da war. –