我在我的项目中有这个代码,我如何使用Moq来管理文档并设置返回值?
_session.Query<IPageModel, PageByUrl>()
.Customize(x => x.WaitForNonStaleResultsAsOfLastWrite())
.FirstOrDefault(x => x.Metadata.Url == virtualUrl);
Run Code Online (Sandbox Code Playgroud)
这是我在问之前尝试过的
var session = new Mock<IDocumentSession>();
var pageModel = new DummyModel();
session.Setup(x => x.Query<IPageModel, PageByUrl>()
.Customize(y => y.WaitForNonStaleResultsAsOfLastWrite())
.FirstOrDefault(y => y.Metadata.Url == path)).Returns(pageModel);
Run Code Online (Sandbox Code Playgroud)
抛出一个异常,我无法弄清楚如何更改moq
System.NotSupportedException : Expression references a method that does not belong to the mocked object: x => x.Query<IPageModel,PageByUrl>().Customize(y => y.WaitForNonStaleResultsAsOfLastWrite()).FirstOrDefault<IPageModel>(y => y.Metadata.Url == .path)
at Moq.Mock.<>c__DisplayClass1c`2.<Setup>b__1b()
at Moq.Mock.Setup(Mock mock, Expression`1 expression, Func`1 condition)
at Moq.Mock`1.Setup(Expression`1 expression)
at BrickPile.Tests.Web.Routing.PathResolverTests.Home_Page_With_Default_Action(String path) in PathResolverTests.cs: line 26
Run Code Online (Sandbox Code Playgroud)
您是否考虑过使用embeddabledocumentstore而不是模拟文档会话?它可以完全在内存中运行,并且您拥有完整的数据库作为测试的后端.
另请参阅此博客文章,其中介绍了一些背景知识:http://novuscraft.com/blog/ravendb-and-the-repository-pattern
归档时间: |
|
查看次数: |
808 次 |
最近记录: |