首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何测试NHibernate的Restrictions.Not?

如何测试NHibernate的Restrictions.Not?
EN

Stack Overflow用户
提问于 2013-10-23 07:25:17
回答 1查看 134关注 0票数 1

我在试着测试我的代码。需要测试使用NHibernate标准的模块的功能。例如,这里是我的一个单元测试。

代码语言:javascript
复制
[Fact]
public void test_name()
{
  var criteria = ... // creates mock criteria
  MyModule.DoWork(criteria); // adds restrictions to criteria

  Assert.True(/* check if criteria.Add() was called
  and what arguments were passed */);
}

如果MyModule.DoWork()添加了一个Restrictions.Eq(),就没有问题,因为它返回一个SimpleExpression,我可以检查expression.PropertyName和expression.Value。但是,如果它添加了Restrictions.Not(Restrictions.Eq()) (返回AbstractCriterion),就无法检查PropertyName和值。

在这种情况下我该怎么办?如何对Restrictions.Not进行测试?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-23 08:08:16

例如,您可以测试ToString()AbstractCriterion结果(应该是带有嵌套私有_criterionNotExpression )。

不管怎样,我不认为这是个好主意。我在这里可能有些离题,但我宁愿测试结果的行为,而不是它的结构,或者ToString()的结果。主要问题是(IMHO)代码所做的事情,而不仅仅是它是否符合您对目标数据结构的知识。

我想最好是设置一个内存中的数据库(想到了SqlLite ),并在测试集上应用您的限制进行测试。这似乎与NH测试https://github.com/nhibernate/nhibernate-core/blob/master/src/NHibernate.Test/Criteria/CriteriaQueryTest.cs的方式类似。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19535381

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档