我需要爲從數據庫加載數據的方法創建單元測試。我正在研究一些單元測試和數據庫,大多數文章告訴你應該模擬數據庫。但是,此方法基本上從數據庫加載對象,並通過SQL執行一些限制。單元測試通過nhibernate查詢數據庫
因此,我想測試的是,實際的數據庫查詢工作成功,因此我不認爲可以模擬數據庫。
我使用NHibernate作爲我的ORM,並且使用QueryOver
構建查詢。由於數據庫處於不一致狀態,我發現單元測試數據庫非常成問題。任何想法/方法如何去做這樣的測試?
這是特定的方法,我想單元測試:
public IEnumerable<IArticlePanel> LoadPanelsApplicableToArticle(ArticleModule.IArticle article, Enums.ARTICLE_PANEL_LOCATION location)
{
CS.General_v3.Util.ContractsUtil.RequiresNotNullable(article, "Article must not be null");
var articleList = Modules.Factories.ArticleFactory.GetAllParentsForAnArticle(article).ToList();
articleList.Add(article);
var q = GetQuery();
q = q.WhereRestrictionOn(x => x.Article).IsInG(articleList.ConvertAll<long>(x => ((IBaseDbObject)x).ID));
q = q.Where(x => x.Location == location);
return FindAll(q);
}
切換到sqlite數據庫進行測試。 –