我有這樣的方法進行單元測試:如何單元測試庫方法
public virtual TEntity Get(int id)
{
return _db.Set<TEntity>().Find(id);
}
可能有人請告訴我如何單元測試嗎?
我想我需要測試的是,查找調用正確的ID?
首先,我試圖用Moq來嘲笑上下文_db
。設置不是虛擬的,但不能使用Verify
。
有人可以請建議一個替代方法來測試這個嗎?
我有這樣的方法進行單元測試:如何單元測試庫方法
public virtual TEntity Get(int id)
{
return _db.Set<TEntity>().Find(id);
}
可能有人請告訴我如何單元測試嗎?
我想我需要測試的是,查找調用正確的ID?
首先,我試圖用Moq來嘲笑上下文_db
。設置不是虛擬的,但不能使用Verify
。
有人可以請建議一個替代方法來測試這個嗎?
存儲庫實現通常充滿了對ORM API的調用。 單元沒有什麼東西在這裏測試。相反,您應該寫一個集成測試。在像SQLite這樣的內存數據庫中使用。閱讀this或this。這樣你會覆蓋你的映射,標準,HQL等。我知道你使用的是EF,但我認爲這個原則和NHibernate一樣。
關於嘲笑_db
。有一個非常好的指導原則:Don't mock types you don't own。
我在github上放了一個通用的存儲庫實現,它允許簡單的測試。您可以點擊此處查看:
https://github.com/rcravens/GenericRepository
的倉庫實現自身測試也有假的(在內存中)倉庫實現,你可以在注入測試更高水平的代碼。
Bob
非常感謝您的有用鏈接! – AnonyMouse