Cache, Autofac und Tests

Gestern ging wieder etwas Zeit drauf, als ich unsere Tests ganz machen wollte und die Tests für das UrlRewriting partout nicht in der Testsuite durchlaufen wollten. Einzeln ausgeführt funktionierte hingegen alles wunderbar.

Dieses Phänomen tritt immer mal wieder auf, und es liegt (natürlich ;-)) an den unterschiedlichen Ausgangssituationen, in denen der betroffene Test startet.

Ohne große Umschweife hier also drei potenzielle Fallen:

  • Der Cache ist gefüllt oder unsere RepositoryDb-Basisklasse hat nach GetAll() eine Liste aller Elemente zwischengespeichert (siehe auch 2.)
  • Einige Services haben einen Zustand und dieser ist anders, als im Test angenommen --> Autofac-Container recyclen
  • Die DB wird durch Custom-SQL manipuliert (bspw. zur Vorbereitung eines Tests) und alle Businesslogik wird umgangen.

Wenn also Fehler mit Tests auftreten, bitte diese drei Punkte überprüfen. Für Punkt eins und zwei gibt es in der BaseTest-Klasse die Methode RecycleServiceContainerAndClearCache().

 

Wenn ihnen der Artikel gefallen hat oder er für sie hilfreich war, bitten "kicken" sie ihn.
kick it on dotnet-kicks.de

Kommentar schreiben


(Zeigt dein Gravatar icon)

  Country flag

biuquote
  • Kommentar
  • Live Vorschau
Loading



Über speak-friend

Wir Stefan, Oliver, Anton und Robert, sind die Entwickler von speak-friend.

Hier schreiben wir über unsere Coding-Abenteuer.

Letzten Kommentare