我将如何对这个nhibernate查询进行单元测试?

时间:2009-12-16 16:08:40

标签: c# unit-testing nhibernate nunit

public Category GetByName(string name)
        {
            Category category = Session.CreateCriteria(typeof (Category))
                .Add(Expression.Eq("Name", name))
                .UniqueResult<Category>();


            return category;
        }

还是这么清楚它不需要测试?

4 个答案:

答案 0 :(得分:6)

我认为可能需要编写一些测试:

  1. 测试您是否获得与命名类别池中指定的名称匹配的类别。
  2. 测试您从具有相同名称的类别池中获取一个类别。
  3. 测试在使用类别池中不存在的名称时,您将获得null。
  4. 至于它在哲学上足够明确,不需要测试;我认为这是一个意见问题。如果你已经写了300万次这条线并确信它能按预期运行,那么你可能觉得不值得花时间。然而,如果它是新的地形,总是值得花费额外的时间来确保它按预期工作。

答案 1 :(得分:3)

仅仅因为代码清晰并不意味着它不应该进行单元测试。

测试很简单,给它一个名字它能给你正确的类别吗?它不是NULL吗?

你今天也没有为这种方法编写测试。如果你将来重构怎么知道你没有引入重大改变呢?

答案 2 :(得分:0)

现在很清楚,虽然如果你有多个具有相同名称的类别会发生什么?如果由于您的架构而无法做到这一点(在其他地方实施了唯一性),则值得评论以表明这一事实。

答案 3 :(得分:0)

就个人而言,我不会对此进行单元测试。我会写一些集成测试。