Auf der anderen Seite: Wenn die Verbindung konfigurierbar ist, reduzieren Sie das Zeitlimit für die Verbindungszeichenfolge auf 1 Sekunde - das macht es einfacher. Füllen Sie die Tabelle mit Unmengen von Daten und lassen Sie 3 andere Prozesse in einer Schleife drehen, um Teile dieser Tabelle mit einer Transaktion um die Schleife zu aktualisieren. Ändern Sie nicht die von der App aufgerufene tatsächliche Prozedur (Injizieren von Waitfor). Das macht einen Integrationstest ungültig.
Dies ist jedoch eine Fallstudie zugunsten von Unit-Tests und Abhängigkeitsinjektionen. Einige Dinge sind nur schwer zu integrieren. Unit Test + Abhängigkeitsinjektion .
- Real: Code, der scheißt -> Datenbank-Timeout (schwer zu reproduzieren).
- Refactor: Code, der scheißt -> Repository (nur Datenzugriff) -> Datenbank
- Unit Test: Code, der Craps> Mock Repository zu werfen -> null
- Jetzt haben Sie einen fehlgeschlagenen Test für Code, der Fehler macht und ihn beheben kann.
Dies ist eine "Abhängigkeits" -Injektion. Der Entwickler kann die Abhängigkeit in die Datenbank einfügen und etwas ersetzen, das das Verhalten einer Abhängigkeit simuliert. Gut für alle Datenbanktests. Wenn der Komponententest eingerichtet ist, wissen Sie, dass das Update genau das tut, was es sollte, aber Sie benötigen noch einen Integrationstest. In diesem Fall kann es sich besser auf die Regression konzentrieren - was bedeutet, dass beim Testen nichts anderes beschädigt wurde und die Funktion weiterhin funktioniert.
Sie haben Ihren Patch bereits erstellt, daher ist meine Antwort wohl zu spät.