私はこのためにユニットテストをセットアップしようとしています。しかし、私が実際に見たすべての例は、このタイプの設定です。このように動作します。
//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はスレッドセーフではないので、私はそれを非同期で行うからです。しかし、私は努力から正しいコンテキストをすべて渡さない限り、努力でそれをテストすることもできません..
私はすべてのサービスメソッドで使用するので、動作しません。