对于我创建的每个实体,我都编写了一个单元测试,它只从数据库中加载一条记录,以查看查询是否有效,并且可以在实体上正确设置数据。您可以将其视为基本映射的单元测试。这还应确认该类型存在映射文件并设置为嵌入资源。
测试看起来像这样(测试驻留在通用基类中):
session.CreateCriteria(typeof(TEntity)).SetMaxResults(1).List();
我不做任何断言,我只是想看看这条线是否有效而不会引发异常。
现在在一种情况下,我忘记将映射文件设置为嵌入式资源,但测试仍然有效。然而,没有查询被发送到数据库,所以它基本上没有做任何事情。
为什么未映射类型的 CreateCriteria() 或 List() 不会失败?我如何测试该特定要求?
编辑:如果发现以下行确实引发异常,但仍然想知道第一种情况
session.CreateCriteria(typeof(TEntity)).SetMaxResults(1).Future<TEntity>().ToArray()