我正在使用linq对我的项目进行nhibernate,我正在使用Mock和SQLLite编写单元测试。 域对象使用流畅的nhibernate映射到sql视图。
问题是这个域对象使用sql视图有源,而且这个视图有来自许多表的数据,只有MsSQL知道这一点。我不知道如何模仿这个。
如何使用Mock和SQLite对sql视图进行单元测试?
»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»» »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
编辑:
对不起,我的问题不太清楚。让我重新说一下。
我正在使用nhibernate,并使用SQLLite编写单元测试。 在某些情况下,我的域对象被映射到视图而不是表,因此我配置了流畅的nhibernate映射,以便在SQLite数据库模式中不生成相应的表。
这在开发环境中有效,因为之后在MsSQL数据库中手动创建视图,但我无法在单元测试中测试相应的存储库,因为它们使用SQLite。
如何使用SQLite对SQL视图进行单元测试?
答案 0 :(得分:6)
我从来没有理解那些想要测试其持久性层并想知道如何模拟它的人。如果从测试中消除数据库,测试数据库的重点是什么?
如果您正在尝试测试数据库,请不要嘲笑它。一旦你完成了令你满意的事情,并且你想继续使用数据库的服务,那么我认为模拟数据库是合适的(因为你已经测试过了)。
话虽如此,数据库测试还有一些特殊注意事项:
答案 1 :(得分:0)
我找到了解决方案。
我已经更改了映射,因此在单元测试中它会生成域对象的映射,在SQLite中创建一个表而不是视图。 有了这个,我可以在测试环境中创建该对象的存储库。