不能赋值给>方法名>因为它是一个方法组:Error(使用mole框架)

本文关键字:方法 一个 Error 使用 框架 mole 赋值 因为 不能 | 更新日期: 2023-09-27 17:50:11

这两行代码给出了标题中提到的错误。我试图为TestClass定义一个存根

var stubTestClass = new StubsTutorial.Moles.STestClass();
stubTestClass.WriteStuff = () => "Moled in static class!";

函数WriteStuff()是这样定义的

public class TestClass {
  public string WriteStuff() {
    return "Stuff written in main class.";
  }
}

我不确定我哪里错了。方向会帮助我。

不能赋值给>方法名>因为它是一个方法组:Error(使用mole框架)

从一个教程中我发现:

每个摩尔类型通过在其名称前加上"M"来命名并将其放到。mole命名空间中。

也许你的行

var stubTestClass = new StubsTutorial.Moles.STestClass();

改为

var moleTestClass = new StubsTutorial.Moles.MTestClass();

虽然我没有使用微软的鼹鼠的经验。

我不是mole用户,但是…

"默认情况下,为所有接口和抽象类生成存根,尽管你也可以配置mole来为公开虚拟方法的非抽象类生成存根"

a)是否配置正确b)如果a)是正确的

,我注意到方法没有标记为virtual

public virtual string WriteStuff() { ... }

因为封闭类是具体的(没有标记抽象或接口)

存根通过覆盖公共抽象方法和虚拟方法来创建它们的假委托。如果方法未被标记为虚拟或抽象,则任何向存根委托分配值的尝试都将被编译器驳回,因为该方法未被重写以返回已分配的委托。通过使用两个方法(一个是简单的public方法,另一个是public virtual方法)存根一个测试类来尝试。为了测试没有接口契约或抽象或虚方法的公共类,必须使用shim,而不是存根。