0
我正在使用實體框架的核心,因爲它的ORM一個asp.net核心應用。對於單元測試,我使用Microsoft內存提供程序(Microsoft.EntityFrameworkCore.InMemory
特別是版本1.1.0
)手動模擬數據庫與從我的DBContext派生的類。
MockDBContext.cs:
public class MockDBContext:DBContext{
public MockDBContext:base(
new DbContextOptionsBuilder<DBContext>().UseInMemoryDatabase(
Guid.NewGuid().ToString()
).Options
){}
public override void Dispose(){}
public void clear(){
base.Dispose();
}
}
在內存數據庫中的新的獨特之處在於爲每個上下文創建。
我現在正在重寫處置不做任何事情來允許我檢查目標方法編寫的值,其中有using(DBContext...
,否則當我在測試中運行斷言時,檢查會拋出ObjectDisposedException
。我目前有另一種方法稱爲clear
,我可以手動撥打電話base.Dispose
MockDBContext
。
問題
我的問題是,由於模擬數據庫是在內存中,我是不是真的需要處理呢?還是會得到垃圾回收,如果我不叫clear
一個try finally
內爲每個測試打擾