C# MS Fakes-访问存根的基类成员
可以在存根中模拟基类的成员吗?例如,如果我有:C# MS Fakes-访问存根的基类成员,c#,.net,unit-testing,stub,microsoft-fakes,C#,.net,Unit Testing,Stub,Microsoft Fakes,可以在存根中模拟基类的成员吗?例如,如果我有: public class MyObjectBase { public virtual int GetNumber() { return 1; } } public class MyObject : MyObjectBase { } 然后我希望能够编写一个测试来实现这一点: void MyTest() { var stub = new StubMyObject(); stub.GetNumber0
public class MyObjectBase {
public virtual int GetNumber() {
return 1;
}
}
public class MyObject : MyObjectBase {
}
然后我希望能够编写一个测试来实现这一点:
void MyTest() {
var stub = new StubMyObject();
stub.GetNumber01 = () => 2; // this line won't compile
Assert.Equal(2, stub.GetNumber());
}
但是,GetNumber01
在StubMyObject
上不存在,因为它是基类的成员
编辑:
移除并重新添加fakes程序集后,此问题消失。看起来这只是fakes程序集未更新的问题。错误是什么,为什么存根函数被称为01?错误是在存根对象上找不到GetNumber01。委托被称为GetNumber01,因为如果它被称为GetNumber,那么它将与实际的方法GetNumber()冲突。所以,默认情况下,MS Fakes会在名字后面加上“01”。对我来说,这很有效。。。发现基类方法没有问题(在VS2013RC和VS2012upd4RC中)。您是否尝试过从测试项目中删除伪文件和引用并重新添加它?语法上没有问题。哇,谢谢。我删除了伪文件和引用,重新添加了它们,并且成功了。