データベースからデータをロードするメソッドの単体テストを作成する必要があります。私は単体テストとデータベースについて少し調べていましたが、ほとんどの記事では、データベースをモックする必要があると書かれています。ただし、このメソッドは基本的にデータベースからオブジェクトをロードし、SQLを介していくつかの制限を実行します。
したがって、私がテストしたいのは、実際のデータベースクエリが正常に機能していることです。したがって、データベースをモックすることはできないと思います。
ORMとしてNHibernateを使用しており、クエリはを使用して構築されてい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);
}