Test unitario con sforzo EF6 con metodi asincroni

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

Domanda

Sto provando a installare i test unitari per questo. Ma ogni esempio che ho visto funziona davvero in questo tipo di installazione. Funzionerà in questo modo.

//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);
  }
}

Ma il modo in cui ho il mio setup è qualcosa del genere, e non riesco a capire come farlo correttamente senza rompere tutto

//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);
  }
}

Quindi, come posso testare questo, senza avere una proprietà Context e passare il contesto. Perché da quello che ho letto non posso farlo asincrono, perché DBContext non è thread-safe. Ma non posso nemmeno provarlo con Effort a meno che non passi tutto il contesto corretto da Effort ..

Non funzionerà perché uso un utilizzo su ogni metodo di servizio.

Risposta popolare

Asyns non è un problema qui. Si prega di fare riferimento a questa domanda per vedere come implementare il metodo di fabbrica: cosa succede quando si usa l'istruzione quando si passa all'input della dipendenza




Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché