gpt4 book ai didi

c# - 使用最小起订量进行单元测试期间设置属性时出错

转载 作者:太空宇宙 更新时间:2023-11-03 18:37:55 24 4
gpt4 key购买 nike

好吧,假设我有一个像下面这样的类......

public class Foo : IFoo
{
public string Bar
{
get { ... }
}

public void Initialize()
{
...
}
}

... 如您所见,它实现了一个接口(interface),因此我可以模拟它。现在,在我的单元测试中,我正在像这样构建模拟......

var mock = new Mock<IFoo>();
mock.SetupProperty(p => p.Bar).SetReturnsDefault("Some static value here.");

...但是,当测试运行时,出现以下错误...

System.ArgumentException: Property IFoo.Bar is read-only. Parameter name: expression

那么,三个问题:

  1. 我做错了什么?
  2. 我需要做什么?
  3. 你能解释一下我是如何误解 SetReturnsDefault 的吗?

谢谢大家!

最佳答案

显然,错误消息告诉您不能像那样模拟只读属性。相反,请尝试:

mock.SetupGet(p => p.Bar).Returns("whatever");

如果您希望所有未明确设置的字符串属性返回一些字符串,请执行以下操作:

mock.SetReturnsDefault<string>("whatever"); 
// IMPORTANT: don't call mock.SetupGet(p => p.Bar) as it will override default setting

关于c# - 使用最小起订量进行单元测试期间设置属性时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12745742/

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