我最近花了很多时间来提取后端存储过程并用NHiberante基础存储库替换它。每个存储库的一个测试在存储过程版本中很好,因为我可以验证我的存储过程是否有效,并且将返回的数据映射到我的对象的类完成了它的工作。
但是在我开始使用NHibernate后,我心里想着“这真的需要吗?”。毕竟,NHibernate有自己的单元测试,以确保会话知道如何进行脏跟踪/映射工作等等
我在这里遗漏了什么,或者我应该抛弃那些没有实际价值的测试?
(我将在此集成测试期间运行的存储库示例)
public class UserRepository : NHibernateRepository<User>, IUserRepository
{
public UserRepository() : base()
{
}
public void DeleteUser(User User)
{
base.Delete(User);
}
public User GetUserById(int id)
{
return base.Retrieve(id);
}
public IQueryable<User> GetUserCollection()
{
return base.RetrieveAll();
}
public void SaveUser(User User)
{
base.Save(User);
}
}
答案 0 :(得分:3)
至少,您应该知道您的映射正在运行。这可以通过创建一些简单的删除和保存测试来实现。
答案 1 :(得分:2)
您还应该为映射添加一些“Ghost Buster”样式测试。