2016-11-16 4 views
0

Vielen Dank für das Lesen meiner Frage.Vorschlag zum Erstellen von Komponententest für Datenbankschicht

Ich habe mich nur gefragt, wie soll ich Komponententests für bestehende Datenbank-Layer erstellen. ab sofort hat mein Projekt bereits existierende Komponententests, aber kein Komponententest wird für den Datenbank-Layer oder irgendeine Funktion geschrieben, die Daten aus der Datenbank einfügt/aktualisiert/löscht.

Wir verwenden Microsoft-Tests. Ein Ansatz, den ich hier denke, ist 1) Wir erstellen eine Datenbank on the fly dh MDF-Datei und wir werden unsere Standardwerte bereit halten und in unserer Setup-Methode (Nunit) oder Initialisierungsmethode (MS-Tests) werden wir die Objekte und Übergeben Sie die Dummy-Daten in Tabellen.

Wir verwenden auch kein spöttisches Framework. Also bin ich alles verwirrt.

ich muss wissen, wie können wir das von Grund auf machen. Gibt es auch etwas Optionales für das Mocking Framework?

Alle Zeiger oder Proben würden sehr geschätzt.

Nochmals vielen Dank.

Antwort

0

Ein C# Unit-Test darf die Datenbank nicht berühren, Sie sollten die Datenbank mockern. Es sollte möglich sein, viele tausend Komponententests auf Ihrem lokalen Rechner (ohne externe (Internet, Datenbanken, andere Anwendung)) innerhalb von Sekunden auszuführen (und Sie möchten diese beim Erstellen Ihres Codes ausführen).

Das lässt uns irgendwie mit Ihrer Frage unbeantwortet: Was sollten Ihre Datenbankschichttests tun? Es hängt davon ab, welche Art von Logik Sie in dieser Versammlung haben! Wenn Sie "Business oder Entscheidung" -Logik haben sollten, sollten Sie das testen, wenn Sie eine Zuordnungslogik testen. Wenn all Ihre Datenbankebene funktioniert, wenn Sie (egal welches db-Framework) verwenden, um die Datenbank zu belasten, dann haben Sie vielleicht nichts, was es wert wäre, dort zu testen.

Wenn Sie die Logik testen möchten, die von Ihrer Datenbank ausgeführt wird (sagen wir SPs), sollten Sie dies im Datenbankprojekt tun und höchstwahrscheinlich nicht mit mstest.

Natürlich können Sie mstest verwenden, um Datenbank einzurichten und zu zerlegen und Test durchzuführen, aber diese Tests werden keine Komponententests sein.

Verwandte Themen