gpt4 book ai didi

c# - 如何模拟作为接口(interface)的接口(interface)属性

转载 作者:行者123 更新时间:2023-12-03 23:31:32 25 4
gpt4 key购买 nike

public interface IFoo
{
IFoo2 Foo2 { get; }
}

public interface IFoo2
{
string FooMethod();
}

假设我有上面的 2 个接口(interface)。我正在尝试模拟在另一个接口(interface)上设置为属性的接口(interface)。这可能吗?
Mock<IFoo> mockFoo = new Mock<IFoo>();
Mock<IFoo2> mockFoo2 = new Mock<IFoo2>();

mockfoo.SetupGet<IFoo2>(x => x.Foo2).Returns(mockFoo2);

提示它无法转换 IFoo2Moq.Mock<IFoo2> :

Error CS1503 Argument 1: cannot convert from 'Moq.Mock<IFoo2>' to 'IFoo2'

最佳答案

引用 Object访问模拟实例的属性。

Mock<IFoo> mockFoo = new Mock<IFoo>();
Mock<IFoo2> mockFoo2 = new Mock<IFoo2>();

mockFoo.SetupGet(x => x.Foo2).Returns(mockFoo2.Object);

关于c# - 如何模拟作为接口(interface)的接口(interface)属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34801702/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com