Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Verständnisproblem FakeRepository, oder: Wie wird ein echtes Repository getestet?
m0rius
myCSharp.de - Member

Avatar #avatar-3125.png


Dabei seit:
Beiträge: 1043

Themenstarter:

Verständnisproblem FakeRepository, oder: Wie wird ein echtes Repository getestet?

beantworten | zitieren | melden

Hallo,

ich schreibe seit ein paar Monaten ASP.NET MVC 2 bzw. 3 Anwendungen und arbeite mich zur Zeit in die testgetriebene Entwicklung mithilfe von TDD ein.

Mir leuchtet ein, dass ein FakeRepository geschrieben wird, damit die Unit Tests (aus verständlichen Gründen: Geschwindigkeit, Datenbank-Setup, ...) nicht gegen eine reale Datenbank ausgeführt werden. Mit dem FakeRepository kann dann ein entsprechender Controller getestet werden, der per Constructor Dependency Injection ein bestimmtes IRepository vom Typ FakeRepository injiziert bekommt. Soweit verständlich.

Was ich allerdings noch nicht verstanden habe:
  1. Welchen Nutzen hat das FakeRepository über die Möglichkeit, den zugehörigen Controller zu testen, hinaus?
  2. Wie wird das echte Repository getestet, ohne Dummy-Daten in der Produktionsdatenbank zu persistieren?

  3. m0rius
Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg
private Nachricht | Beiträge des Benutzers
serial
myCSharp.de - Member



Dabei seit:
Beiträge: 912

beantworten | zitieren | melden

Hallo,


was genau willst du denn an dem Repository testen, wenn nicht die funktionalität? (Ich meine, wenn du dein DB Repository testen willst, wäre es ja nicht sinnvoll, die DB aussen vor zulassen).

mfg
serial
private Nachricht | Beiträge des Benutzers
FZelle
myCSharp.de - Experte



Dabei seit:
Beiträge: 10083

beantworten | zitieren | melden

Das FakeRepository hat keinen weiteren nutzen als eben für die Tests das echte Repository zu faken.

Wenn du das echte Repository Testen willst, musst du dir schon dann eine TestDB heranziehen.
private Nachricht | Beiträge des Benutzers
m0rius
myCSharp.de - Member

Avatar #avatar-3125.png


Dabei seit:
Beiträge: 1043

Themenstarter:

beantworten | zitieren | melden

Hallo serial,

das ist ja eben meine Frage: Wie teste ich mein reales Repository? Lasse ich einmalig meine Unit Tests auf dem echten Repository durchführen und lösche danach – per Hand? – die Dummy-Daten, die beispielsweise beim Testen der Add()-Funktion angelegt wurden?
Welchen Sinn macht es bzw. welchen Vorteil bringt es, durch Tests sicherzustellen, dass ich ein funktionierendes FakeRepository habe? Das sagt ja noch nichts über die Funktionsfähigkeit meines realen Repositories aus!



Hallo FZelle,

vielen Dank!

m0rius
Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von m0rius am .
Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg
private Nachricht | Beiträge des Benutzers
xxxprod
myCSharp.de - Experte

Avatar #avatar-2329.gif


Dabei seit:
Beiträge: 1420
Herkunft: Österreich\Wien

beantworten | zitieren | melden

Ich teste meine Repositories so, dass ich wenn nötig per primitiven SQL Script Daten in der DB vorbereite, dann die Repository Methoden ausführe und nachher wieder mit custom-SQL Script prüfe ob in der Datenbank das erwartete drinnen steht. Und das ganze lasse ich in einer Transaction laufen, die am Ende zurückgerollt wird.

Lg XXX
private Nachricht | Beiträge des Benutzers