不能赋值给>方法名>因为它是一个方法组: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.";
}
}
我不确定我哪里错了。方向会帮助我。
从一个教程中我发现:
每个摩尔类型通过在其名称前加上"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,而不是存根。