Komponententest fehlgeschlagen bei EF Entry.State

8

Ist es möglich, das Gerät zu testen?

%Vor%

Die [TestInitialize] fügt 1 Benutzer zum Repository hinzu

%Vor%

und ich versuche, mit diesem

zu testen %Vor%

Aber es stirbt in der ersten Zeile von UpdateAsync. Ist der Test falsch oder die UpdateAsync-Implementierung? Kann ich es irgendwie testen?

Bearbeiten

Ich habe hinzugefügt, wie von Belogix vorgeschlagen

%Vor%

Das bringt mich näher, denke ich, habe aber immer noch den nicht-virtuellen Fehler: Ungültige Konfiguration auf einem nicht-virtuellen Mitglied: x = & gt; x.Entry (It.IsAny ())

    
kooshka 10.09.2014, 14:45
quelle

3 Antworten

5

Bestes Zitat aller Zeiten: "Alle Probleme in der Informatik können durch eine andere Ebene der Indirektion gelöst werden" - Butler Lampson.

Es sieht so aus, als ob das nicht ohne zusätzliche Abstraktion direkt getestet werden kann. Ich musste meine UpdateAsync-Methode auf diese Weise umgestalten

%Vor%

Und dann aktualisieren Sie meinen Testcode in der Initialize

%Vor%

Mein Test ist dann endlich bestanden

%Vor%     
kooshka 12.09.2014, 09:57
quelle
0

Der ChangeTracker in dbContext verfolgt Änderungen und enthält die Entitäten, die geändert wurden. So können Sie behaupten, dass die geänderte Entität unter ihnen ist.

%Vor%

Für die Eigenschaft wäre es etwa so:

%Vor%     
Rinus 17.05.2017 20:09
quelle
-1

Sieht so aus, als hättest du deine context nicht richtig gestempelt ... Ich bin nicht an einem Computer mit Visual Studio, also hier ist ein Pseudo-Code, der zeigen soll, was ich meine. Ersetzen Sie das IsAnything entweder durch Ihre Merring-Frameworks-Möglichkeit, Argumente zu ignorieren, oder durch den Benutzer, wenn Sie unterschiedliche Antworten verarbeiten möchten.

%Vor%     
Belogix 10.09.2014 15:06
quelle