1

对于我创建的每个实体,我都编写了一个单元测试,它只从数据库中加载一条记录,以查看查询是否有效,并且可以在实体上正确设置数据。您可以将其视为基本映射的单元测试。这还应确认该类型存在映射文件并设置为嵌入资源。

测试看起来像这样(测试驻留在通用基类中):

session.CreateCriteria(typeof(TEntity)).SetMaxResults(1).List();

我不做任何断言,我只是想看看这条线是否有效而不会引发异常。

现在在一种情况下,我忘记将映射文件设置为嵌入式资源,但测试仍然有效。然而,没有查询被发送到数据库,所以它基本上没有做任何事情。

为什么未映射类型的 CreateCriteria() 或 List() 不会失败?我如何测试该特定要求?

编辑:如果发现以下行确实引发异常,但仍然想知道第一种情况

session.CreateCriteria(typeof(TEntity)).SetMaxResults(1).Future<TEntity>().ToArray()
4

1 回答 1

2

我不知道,但显然在 NHibernate 他们也不知道。有关此问题报告的错误,请参阅https://nhibernate.jira.com/browse/NH-2183 。他们仍在努力。

于 2010-10-27T13:59:44.647 回答