gpt4 book ai didi

c# - 即使是简单的起订量代码也会抛出 NotSupportedException

转载 作者:行者123 更新时间:2023-11-30 19:54:45 28 4
gpt4 key购买 nike

我一直在努力使用 Moq 作为模拟框架并复制了一些非常简单的示例代码。我一定在这里遗漏了一些非常愚蠢的东西。它在 Setup 调用上抛出 NotSupportedException,即使它指向 Returns 方法。此代码是我的测试类的一部分:

class Test
{
public string DoSomethingStringy(string s)
{
return s;
}
}

[TestInitialize]
public void Setup()
{
var mock = new Mock<Test>();
mock.Setup(x => x.DoSomethingStringy(It.IsAny<string>()))
.Returns((string s) => s.ToLower());
}

最佳答案

异常错误消息可以提示您问题所在:

Invalid setup on a non-virtual (overridable in VB) member

这意味着当您模拟一个类的方法时,您只能模拟它是抽象的还是虚拟的(在您的情况下两者都不是)。

所以最简单的解决方法是使该方法成为虚拟方法:

public virtual string DoSomethingStringy(string s)
{
return s;
}

关于c# - 即使是简单的起订量代码也会抛出 NotSupportedException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40828489/

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