使用Moq模拟ElasticSearch中的单桶对象

本文关键字:单桶 对象 ElasticSearch Moq 模拟 使用 | 更新日期: 2023-09-27 18:25:07

我正在使用Moq模拟ElasticSearch中的SingleBucket对象。基本上我需要让它返回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模拟ElasticSearch中的单桶对象

正如您已经指定的,Moq不能模拟非虚拟方法。您可以将SingleBucket封装到一个接口中,也可以使用另一个mocking框架。