使用 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.
我正在使用 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.