2009-11-04 21 views
1

我正在寻找使用NHibernate Criteria API构建复杂查询。我想验证该标准是否按我的预期构建,而不必实际运行查询。验证NHibernate标准的内容

这可能吗?是否有任何提示或技巧来优雅地做?

回答

2

一位同事最近做了这个

封装在它自己的类(规范)每个条件查询。 构建了一个表达式构建器,它将查询输出到字符串中。 测试了生成的表达式字符串与预期的表达式字符串匹配。

表达式构建器以递归方式遍历规范中的标准树以生成表达式字符串。

这是一般的想法,现在没有与我的代码:)抱歉。

但是,我发现编写db集成测试来测试Nh条件要容易得多。 标准真的会返回我期望的数据吗?

+0

听起来和我要做的相似。 这是使用访客模式吗?一种是建立规格名称的字符串,另一种是使用规格建立一个标准?你测试前者,但使用后者? – 2009-11-04 12:38:33

+0

是的,就是这样。还没有找到任何其他方法。 – Hibri 2009-11-04 12:43:49