有没有为NHibernate创建存储库的集成测试的任何一点?

时间:2009-09-28 18:13:40

标签: nhibernate integration-testing

我最近花了很多时间来提取后端存储过程并用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);
    }
}

2 个答案:

答案 0 :(得分:3)

至少,您应该知道您的映射正在运行。这可以通过创建一些简单的删除和保存测试来实现。

答案 1 :(得分:2)

您还应该为映射添加一些“Ghost Buster”样式测试。