質問: 私は、EntityFramework Coreを使用するプロジェクトの単体テストを作成する過程にあります。 ドキュメントに従って、 `SQLite in-memory mode`または`The InMemory provider`を使用してデータベースコンテキストを近似することができます。 ドキュメントでは、 `SQLite in-memory mode`はリレーショナルデータベースのように動作し`The InMemory provider`は常にリレーショナルデータベースのように動作するとは限りません。 私の知る限り、SQLiteモードは、InMemoryプロバイダがない間にリレーショナルデータベースのように動作するのでよりよく聞こえますが、そうでなければ`The InMemory provider`考慮していないと`The InMemory provider` 。 使用するツールを選択する前に、それぞれのアプローチに賛否両論はありますか?
回答: あなたの唯一の目的が単体テストを書いているのであれば、テストを作成するために必要なボイラープレートコードを注意深く見てください。それはあなたの締め切りに影響を与える可能性があります。 ( `The InMemory provider`がよりシンプルに見えます)。 サンプルを見て、以下を決めます: * * ...もちろん、あなたのプロジェクトには、実際のデータベースに接続して追加のチェックを行う人に、統合テストが用意されています。だからこそユニットテストの主な関心事は、モックDBの振る舞いではなく、時間を書くことです