单元测试RavenDb查询

单元测试RavenDb查询,ravendb,Ravendb,是否有一种合理的方法来存根/模拟调用IDocumentSession.Query()的结果 我有一个命令,我想在其中验证是否对对象调用了方法(也就是说,被测试的“单元”是命令,而不是命令编排的对象)。我无法将模拟对象(通过Rhinomock)保存到嵌入式db实例中,因此目前,我不得不验证正在调用的对象的状态,而不仅仅是验证是否调用了正确的方法 谢谢, Matt当使用embeddedabledocumentstore{RunInMemory=true}进行单元测试时,您会做得更好。 也就是说,ID

是否有一种合理的方法来存根/模拟调用
IDocumentSession.Query()
的结果

我有一个命令,我想在其中验证是否对对象调用了方法(也就是说,被测试的“单元”是命令,而不是命令编排的对象)。我无法将模拟对象(通过Rhinomock)保存到嵌入式db实例中,因此目前,我不得不验证正在调用的对象的状态,而不仅仅是验证是否调用了正确的方法

谢谢,
Matt

当使用
embeddedabledocumentstore{RunInMemory=true}
进行单元测试时,您会做得更好。
也就是说,
IDocumentSession
应该很容易模拟。

谢谢Ayende,问题是使用嵌入式DocumentStore意味着我必须使用真实对象,而不是模拟。IDocumentSession确实很容易模仿,但不太容易被IRavenQueryable。@mattcole使用
EmbeddedBleDocumentStore{RunInMemory=true}
有什么问题??为什么要模拟
IDocumentSession
?对运行
embeddedabledocumentstore
比模拟的略慢。。但是我很确定,创建
EmbeddedableDocumentStore
的主要原因之一是为了单元测试。别告诉我不要嘲笑——这对我来说是一种难闻的气味,我不能。2.当使用EmbeddedBledDocumentStore时,测试运行得非常慢——所以我想模拟一下!