Unit Test mit Aufwand EF6 mit Async-Methoden

c# effort entity-framework entity-framework-6 unit-testing

Frage

Ich versuche Unit-Tests dafür einzurichten. Aber jedes Beispiel, das ich gesehen habe, das funktioniert, ist diese Art von Setup. Es wird so funktionieren.

//Setup DBContext
public MyContext(DbConnection connection) : base(connection, true){}
//Have some service that gets passed the context etc..
public class SomeService()
{
  public SomeService(MyContext passedContext){
      Context = passedContext;
  }
  public MyContext Context {get;set;}

  public Book GetBook(int id){
     return Context.Books.Find(id);
  }
}

Aber die Art und Weise, wie ich mein Setup habe, ist ungefähr so. Und ich kann mir nicht vorstellen, wie ich es richtig mache, ohne alles zu kaputt zu machen

//Setup DBContext
public MyContext(DbConnection connection) : base(connection, true){}
//Have some service that gets passed the context etc..
public class SomeService()
{
  public SomeService(MyContext passedContext){
      Context = passedContext;
  }
  public MyContext Context {get;set;}

  public Book GetBook(int id){
     return Context.Books.Find(id);
  }
}

Wie kann ich das testen, ohne eine Context-Eigenschaft zu haben und den Kontext herumzugeben? Denn nach dem, was ich gelesen habe, kann ich es async nicht tun, weil DBContext nicht threadsicher ist. Aber ich kann es auch nicht mit Aufwand testen, wenn ich nicht alles den richtigen Kontext von Aufwand gebe.

Funktioniert nicht, weil ich eine Verwendung für jede Service-Methode verwende.

Beliebte Antwort

Asyns ist hier kein Problem. Bitte lesen Sie diese Frage, um zu sehen, wie Factory-Methode implementieren: Was passiert mit der Verwendung von Anweisung, wenn ich zur Abhängigkeitsinjektion bewegen




Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum