Ich bin neu im Unit-Test und brauche Hilfe bei folgenden Fragen.
Ich habe ein kleines Projekt erstellt, um zu lernen, wie man Unit-Tests durchführt. Die Funktionalität für eines der Formulare in meiner Anwendung löscht einen Benutzer aus der Benutzertabelle (und anderen Zeilen in Zuordnungstabellen).
Derzeit werden bei dem von mir erstellten Komponententest die erforderlichen Objekte eingerichtet und anschließend die Geschäftsregelmethode (Übergabe der Benutzer-ID) aufgerufen, die die Datenzugriffsmethode aufruft, um die gespeicherte Prozedur auszuführen, mit der die Zeilen in den Tabellen gelöscht werden.
Ist dies die richtige Methode, um zu testen, ob etwas erfolgreich gelöscht wurde? Sollte die Unit-Test- / Setup-Methode zuerst einige Testdaten einfügen, die der Unit-Test dann löscht?
quelle
when you are directly testing a DB, it isn't a unit test anymore but integration test.
Bist du sicher? Wenn Sie testen, wie eine App mit einer DatenbankEs wird viel einfacher sein, Komponententests für gespeicherte SQL-Prozeduren in SQL zu schreiben. Schauen Sie sich tSQLt an . Vermeiden Sie es, die gespeicherten Prozeduren in Ihren C # -Einheitentests erneut zu testen. Befolgen Sie den Rat des Ratschenfreaks und verspotten Sie die Datenbank, um den C # -Code zu testen.
quelle
Sie sollten die (abstrahierte) Datenbank verspotten, während Sie das Formular testen
Im Wesentlichen wird eine Dummy-Implementierung bereitgestellt, die das für die Durchführung der Tests erforderliche Minimum ausführt
Auf diese Weise können Sie beim Aufrufen von submit im Formular sehen, ob deleteUser im Datenzugriff aufgerufen wird
quelle