You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何Mock属性返回对象的方法并设置其返回值?

配置Mock对象使属性方法返回空集合

没问题,我来帮你搞定这个配置。根据你的需求,要让mockedObject.TheProperty.GetTheValues()返回Enumerable.Empty<MyType>,具体操作分两种常见情况:


情况1:TheProperty是已实现的具体类型(无需额外Mock)

如果TheProperty本身是一个已有实例的具体类型,直接针对它的GetTheValues()方法设置返回值即可,以常用的Moq框架为例:

// 假设你已经创建了主对象的Mock实例
var mockedObject = new Mock<YourParentObjectType>();

// 配置GetTheValues()返回空集合
mockedObject.Setup(m => m.TheProperty.GetTheValues())
            .Returns(Enumerable.Empty<MyType>());

情况2:TheProperty本身是接口/抽象类型(需要Mock属性实例)

如果TheProperty是接口或者抽象类,你需要先Mock这个属性对应的实例,再关联到主Mock对象上:

// 1. 先Mock属性对应的接口/抽象类型
var mockedProperty = new Mock<IYourPropertyInterface>();
// 2. 配置这个Mock实例的GetTheValues()返回空集合
mockedProperty.Setup(p => p.GetTheValues())
              .Returns(Enumerable.Empty<MyType>());

// 3. 将Mock的属性实例绑定到主对象的TheProperty上
var mockedObject = new Mock<YourParentObjectType>();
mockedObject.Setup(m => m.TheProperty)
            .Returns(mockedProperty.Object);

配置完成后,当你调用mockedObject.Object.TheProperty.GetTheValues()时,就会得到一个空的IEnumerable<MyType>集合了。

内容的提问来源于stack exchange,提问作者torhu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:56:22