create task メソッドを呼び出す単体テストを作成しています。create task メソッドは、テストの目的であるモック化された外部オブジェクトを呼び出しますが、テスト済みのメソッド内にはSaveChanges
、タスクを保存する呼び出しもあります。私がやろうとしているのは、メソッドがデータベースにアクセスしなくなるように、DbContext
内部のクラスをシムすることです。System.Data.Entity
SaveChanges
偽のアセンブリを追加しましたが、 .FakesSystem.Data.Entity
を使用すると、アクセスできますが、「シンボル 'Fakes' を解決できません」と表示されます (ただし、System.Data の偽のアセンブリを追加していません)。System.Data.Entity
System.Data.Fakes
エンティティ コンテキストで他のメソッドを偽造しましたが、メソッドが DbContext から継承されているため、エンティティで SaveChanges メソッドを偽造することはできません。
ShimDBEntities.AllInstances.SaveChanges = (x) => { ... };
コードの上部のチャンクには、「シンボル 'SaveChanges' を解決できません」と書かれています。
では、Microsoft Fakes を使用して DbContext をシムするにはどうすればよいでしょうか?