Единичный тест с усилием EF6 с асинхронными методами


Вопрос

Я пытаюсь настроить модульные тесты для этого. Но каждый пример, который я видел, на самом деле работает, - это такой тип установки. Он будет работать таким образом.

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

Но так, как у меня есть моя установка, это что-то вроде этого, и я не могу понять, как это сделать правильно, не нарушая все

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

Итак, как я могу проверить это, не имея свойства контекста и проходящего контекст. Потому что из того, что я прочитал, я не могу сделать это асинхронно, потому что DBContext не является потокобезопасным. Но я также не могу проверить это с помощью Effort, если я не передам все правильное контекст из Effort.

Не работает, потому что я использую использование каждого метода службы.

Популярные ответы

Asyns здесь не проблема. Пожалуйста, обратитесь к этому вопросу, чтобы узнать, как реализовать заводский метод: что происходит с использованием инструкции, когда я перехожу к инъекции зависимостей





Лицензировано согласно: CC-BY-SA
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему