Я пытаюсь настроить модульные тесты для этого. Но каждый пример, который я видел, на самом деле работает, - это такой тип установки. Он будет работать таким образом.
//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);
}
}
Но так, как у меня есть моя установка, это что-то вроде этого, и я не могу понять, как это сделать правильно, не нарушая все
public class SomeService()
{
public async Task<Book> GetBook(int id){
using(var context = new MyContext()
{
return await context.FindAsync(id);
}
}
}
Итак, как я могу проверить это, не имея свойства контекста и проходящего контекст. Потому что из того, что я прочитал, я не могу сделать это асинхронно, потому что DBContext не является потокобезопасным. Но я также не могу проверить это с помощью Effort, если я не передам все правильное контекст из Effort.
Не работает, потому что я использую использование каждого метода службы.
Asyns здесь не проблема. Пожалуйста, обратитесь к этому вопросу, чтобы узнать, как реализовать заводский метод: что происходит с использованием инструкции, когда я перехожу к инъекции зависимостей