1
我正在使用JustMock和實體框架來嘗試爲服務編寫單元測試。在服務上,我有這樣的方法:在另一個類中用JustMock模擬一個實體框架類
List<Log> GetLogType(string type)
{
using (var db = new LogContext())
{
return db.Logs.Where(x => x.Type == type).ToList();
}
}
而且我有一個測試:
[TestMethod]
public void GetLogTypeTest()
{
IList<Log> logs = new List<Log>
{
new Log() {
Id = 1,
Type = "Debug",
Message = "Test Message"
}
};
var logContext = Mock.Create<LogContext>(Constructor.Mocked).PrepareMock();
logContext.Logs.Bind(logs);
var service = new LogService();
var debugs = service.GetLogType("Debug");
Assert.AreEqual(1, debugs.Count());
}
我如何用我的嘲笑方面的服務?現在它試圖連接到數據庫,從而出錯。
謝謝,我猜我錯誤地接近它。要做很多重構,但這會起作用。 – RossD
沒問題。如果沒有依賴注入,你將無法執行很好的單元測試。如果你不希望使用DI仍然可以執行集成測試,但在這種情況下,你需要創建測試數據庫並設置連接字符串指向DB在測試項目的app.config。 – kat1330