Einheit Testing ViewResult in Asp.NET MVC

8

Obwohl es einige Posts auf StackOverflow über Unit Testing Action Ergebnis in MVC gibt, habe ich eine spezifische Frage ....

Hier ist mein ActionResult in Controller:

%Vor%

Jeder Artikel in Produkten hat verschiedene Attribute wie Name, Foto, Menge usw. Ich habe eine Testmethode für diese Methode geschrieben. Sie sieht folgendermaßen aus:

%Vor%

Was sollte ich in diesem Fall vergleichen, da keine Parameter in die Index Action

übergeben werden?     
sujay kodamala 27.04.2016, 17:37
quelle

1 Antwort

8

Sehen Sie sich das ViewResult an Klasse, das kann dir zeigen, was du sonst noch testen könntest. Was Sie tun müssen, ist Ihr DbContext zu verspotten und es mit Daten in der Eigenschaft Products ( DbSet<> ) zu versorgen, da dies in der Aktion Ihres Controllers aufgerufen wird. Sie können dann

testen
  1. Der zurückgegebene Typ
  2. Das Modell auf dem ViewResult
  3. Der ViewName, der leer sein sollte oder Index

Beispielcode

%Vor%

Wenn Sie Hilfe brauchen, um einen DbContext zu verspotten, gibt es bestehende Frameworks und Artikel zu diesem Thema. Hier ist eine von Microsoft mit dem Titel Testen mit einem Mocking-Framework . Idealerweise sollten Sie Ihre Abhängigkeiten (einschließlich DbContext-Instanzen) in die Konstruktoren Ihrer Controller -Instanzen einfügen, indem Sie ein DI-Framework wie AutoFac oder Unity oder NInject verwenden (die Liste wird fortgesetzt). Dies erleichtert auch die Stückprüfung erheblich.

    
Igor 27.04.2016, 17:56
quelle