我把我的NHibernate数据访问类放在WCF服务中,可以通过Silverlight项目使用它,但我有错误,想测试我的查询。
可以使用NUnit在服务类中测试此查询吗?之前我通常测试这个类,但是它在服务类中是怎么做的?
这是我的WCF服务类:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;
using DataTransfer;
using NHibernate;
using NHibernate.Cfg;
using System.Diagnostics;
namespace WcfService1
{
public class Service1 : IService1
{
private ISession _session;
public Service1()
{
try
{
_session = (new Configuration()).Configure().BuildSessionFactory().OpenSession();
}
catch (Exception e)
{
Debug.Write(e);
throw;
}
}
public IList<Dziecko> GetChildByFirstname(string _firstname)
{
return _session.CreateCriteria(typeof(Dziecko))
.Add(NHibernate.Criterion.Expression.Eq("Imie", _firstname)).List<Dziecko>();
}
public IList<Dziecko> GetChildByLastname(string _lastname)
{
return _session.CreateCriteria(typeof(Dziecko))
.Add(NHibernate.Criterion.Expression.Eq("Nazwisko", _lastname)).List<Dziecko>();
}
public IList<Dziecko> GetChildByFirstnameAndLastname(string _firstname, string _lastname)
{
return _session.CreateCriteria(typeof(Dziecko))
.Add(NHibernate.Criterion.Expression.Eq("Imie", _firstname)).Add(NHibernate.Criterion.Expression.Eq("Nazwisko", _lastname)).List<Dziecko>();
}
}
}
答案 0 :(得分:2)
如果您想自己测试查询,我建议将它们放入一个单独的程序集中(可能使用repository pattern)并从您的服务中调用此程序集中的方法。这样可以更轻松地测试查询本身,还可以在测试服务时模拟存储库。