假设这个类:
public class Foo
{
public string Bar { get; set;}
Foo()
{
this.Bar = "Hello world";
}
public void DoStuff()
{
this.Bar = "BAR" // imagine this is read from a memory stream
}
}
我想模拟Foo并设置它以便我可以在DoStuff()中引入我自己的行为 - 即在Bar成员上执行一些操作。但是如何在DoStuff()的回调中访问Bar?
我尝试了什么: - DoStuff()上的回调似乎没有访问类状态 - 我可以设置Bar getter,但这太普遍了,因为其他操作也读取Bar以及
答案 0 :(得分:1)
你不会因为你正在做的事而模仿Foo
。模拟用于在特定实例中提供严格控制的依赖关系。
例如,如果Foo
在构造函数中传递了IBaz
类型的成员,则可以创建IBaz
模拟,告诉IBaz
如何当Foo
对其接口进行调用以触发Foo
本身的行为时,会做出反应。