为具有NHibernate的存储库编写集成测试有什么意义吗?

为具有NHibernate的存储库编写集成测试有什么意义吗?,nhibernate,integration-testing,Nhibernate,Integration Testing,我最近花了大量时间抽出一个存储过程后端,并将其替换为一个NHiberante基本存储库。在存储过程版本中,每个存储库进行一次测试很好,因为我可以验证存储过程是否正常工作,以及将返回数据映射到对象的类是否正常工作 但当我把它安装起来并与NHibernate一起运行后,我想“这真的需要吗?”。毕竟,NHibernate有自己的单元测试,以确保会话知道如何进行肮脏的跟踪/映射工作等 我是否遗漏了一些东西,还是应该放弃这些没有实际价值的测试 (我将在此集成测试期间练习的存储库示例) public类用户存

我最近花了大量时间抽出一个存储过程后端,并将其替换为一个NHiberante基本存储库。在存储过程版本中,每个存储库进行一次测试很好,因为我可以验证存储过程是否正常工作,以及将返回数据映射到对象的类是否正常工作

但当我把它安装起来并与NHibernate一起运行后,我想“这真的需要吗?”。毕竟,NHibernate有自己的单元测试,以确保会话知道如何进行肮脏的跟踪/映射工作等

我是否遗漏了一些东西,还是应该放弃这些没有实际价值的测试

(我将在此集成测试期间练习的存储库示例)

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);
    }
}