相关疑难解决方法(0)

存储库本身通常不会被测试?

对不起,我不知道存储库模式,单元测试和orm工具.

我一直在研究单元测试和存储库模式,得出了一些结论,我想知道我是不对的.

存储库模式有助于在控制器中替换单元测试,例如使用它,对吧?因为创建上下文(在EF中)或会话(在NH中)更难,对吧?存储库本身未经过测试?为什么?

使用EntityFramework或NHibernate与存储库模式,如果我想测试我的存储库,我需要进行集成测试?因为如果我使用我的上下文/会话的假实现,我没有进行真正的测试?因为上下文/会话本身就是存储库(我的意思是它们实现了添加,删除,编辑,GetById,GetAll等的真实逻辑)?

使用EF或NH的存储库模式就像一个包装器?(不仅是一个包装器,我知道这是域的导入概念.)

.net nhibernate unit-testing domain-driven-design entity-framework

11
推荐指数
2
解决办法
2948
查看次数

使用Moq模拟nHibernate QueryOver

测试时,以下行以空引用失败:

var awards = _session.QueryOver<Body>().Where(x => x.BusinessId == (int)business).List();
Run Code Online (Sandbox Code Playgroud)

我的测试是这样的:

var mockQueryOver = new Mock<IQueryOver<Body, Body>>();
mockQueryOver.Setup(q => q.List()).Returns(new List<Body> {_awardingBody});
_mockSession.Setup(c => c.QueryOver<Body>()).Returns((mockQueryOver.Object));
_mockCommandRunner = new Mock<ICommandRunner>();
_generator = new CertificateGeneratorForOpenSSLCommandLine(_mockSession.Object, _mockCommandRunner.Object, _mockDirectory.Object, _mockFile.Object, _mockConfig.Object); 
Run Code Online (Sandbox Code Playgroud)

说实话,我在黑暗中徘徊 - 我对nHibernate和Moq相对较新,所以我不太确定要google什么才能获得正确的信息.

c# nhibernate unit-testing moq queryover

10
推荐指数
1
解决办法
4908
查看次数

IQueryable和存储库 - 需要2?

我不得不承认我一直在携带"存储库不应该返回IQueryable"横幅,因为它更难测试.我已经被回答像其他问题的影响这个这个.

今天早上我一直在阅读ScuttGu关于ASP.NET vNext的博客,在那里他使用SelectMethod详细介绍了Model Binding,它似乎依赖于IQueryable进行分页和排序.

您认为这会迫使我们重新考虑IQueryable在存储库中扮演的角色吗?

asp.net domain-driven-design iqueryable repository

4
推荐指数
1
解决办法
1129
查看次数