使用 Moq 在 ElasticSearch 中模拟单个 Bucket 对象

Mocking a Single Bucket object in ElasticSearch using Moq

我正在使用 Moq 在 ElasticSearch 中模拟 SingleBucket 对象。基本上我需要 return 5 个文件 (属性 .DocCount)

var sb = new Mock<SingleBucket>();
sb.SetupGet(x => x.DocCount).Returns(5);

我试过了,但出现异常:

{System.NotSupportedException: Invalid setup on a non-virtual
(overridable in VB) member: x => x.DocCount

这段代码有什么问题? 似乎可以使用 SetupGet

模拟 属性

我知道我应该模拟接口或虚拟方法。有没有机会模拟那个对象属性?

正如您已经指定的那样,Moq 无法模拟非虚拟方法。您可以将 SingleBucket 包装到接口中,也可以使用 another mocking framework.