为具有NHibernate的存储库编写集成测试有什么意义吗?
我最近花了大量时间抽出一个存储过程后端,并将其替换为一个NHiberante基本存储库。在存储过程版本中,每个存储库进行一次测试很好,因为我可以验证存储过程是否正常工作,以及将返回数据映射到对象的类是否正常工作 但当我把它安装起来并与NHibernate一起运行后,我想“这真的需要吗?”。毕竟,NHibernate有自己的单元测试,以确保会话知道如何进行肮脏的跟踪/映射工作等 我是否遗漏了一些东西,还是应该放弃这些没有实际价值的测试 (我将在此集成测试期间练习的存储库示例)为具有NHibernate的存储库编写集成测试有什么意义吗?,nhibernate,integration-testing,Nhibernate,Integration Testing,我最近花了大量时间抽出一个存储过程后端,并将其替换为一个NHiberante基本存储库。在存储过程版本中,每个存储库进行一次测试很好,因为我可以验证存储过程是否正常工作,以及将返回数据映射到对象的类是否正常工作 但当我把它安装起来并与NHibernate一起运行后,我想“这真的需要吗?”。毕竟,NHibernate有自己的单元测试,以确保会话知道如何进行肮脏的跟踪/映射工作等 我是否遗漏了一些东西,还是应该放弃这些没有实际价值的测试 (我将在此集成测试期间练习的存储库示例) public类用户存
public类用户存储库:NHibernateRepository,IUserRepository
{
public UserRepository():base()
{
}
公共void DeleteUser(用户)
{
删除(用户);
}
公共用户GetUserById(int id)
{
返回base.Retrieve(id);
}
公共IQueryable GetUserCollection()
{
return base.RetrieveAll();
}
公共void SaveUser(用户)
{
base.Save(用户);
}
}
至少,您应该知道映射正在工作。这可以通过创建一些简单的删除和保存测试来实现。至少,您应该知道您的映射正在工作。这可以通过创建一些简单的删除和保存测试来实现。您还应该为映射添加一些“”样式测试。您还应该为映射添加一些“”样式测试
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);
}
}