对于我创建的每个实体,我编写一个单元测试,只是从数据库加载一条记录,以查看查询是否有效,并且可以正确地在实体上设置数据。您可以将其视为基本映射的单元测试。这还应该确认该类型存在映射文件并设置为嵌入式资源。
测试看起来像这样(测试驻留在通用基类中):
session.CreateCriteria(typeof(TEntity)).SetMaxResults(1).List();
我没有做任何断言,我只是想看看这行是否有效而没有抛出异常。
现在在一个案例中,我忘记将映射文件设置为嵌入式资源,但测试仍然有效。但是没有向数据库发送任何查询,因此它基本上没有做任何事情。
为什么对于未映射的类型,CreateCriteria()或List()失败?我该如何测试该特定要求?
编辑:如果发现以下行确实抛出异常,但仍然想知道第一种情况
session.CreateCriteria(typeof(TEntity)).SetMaxResults(1).Future<TEntity>().ToArray()
答案 0 :(得分:2)
我不知道,但显然在NHibernate,他们也不知道。有关此问题报告的错误,请参阅https://nhibernate.jira.com/browse/NH-2183。他们还在努力。