嘲讽了NHibernate的QueryOver与起订量 [英] Mocking out nHibernate QueryOver with Moq

查看:110
本文介绍了嘲讽了NHibernate的QueryOver与起订量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

下面的代码行失败,出现空引用,当测试:

The following line fails with a null reference, when testing:

var awards = _session.QueryOver<Body>().Where(x => x.BusinessId == (int)business).List();



我的测试是,像这样:

My test is like so:

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); 



说实话,我在黑暗中挥舞在这里 - 我是比较新的NHibernate和最小起订量,所以我不是很知道该怎么谷歌获得正确的信息。

To be honest I'm flailing around in the dark here - I'm relatively new to nHibernate and Moq, so I'm not very sure what to google to get the right information.

推荐答案

我不认为上述代码是正确的。据我所知QueryOver是ISession的界面上的扩展方法,你不能模拟扩展方式类似(至少不是传统嘲讽工具,如起订量或RhinoMocks的)。

I don't think the above code is right. AFAIK QueryOver is an extension method on ISession interface and you can not Mock extensions method like that (at least not with conventional Mocking tools like Moq or RhinoMocks).

这篇关于嘲讽了NHibernate的QueryOver与起订量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆