public class MyClass: AbstractBase
{
public override bool Init(IAppContext contextIn)
{
if (base.Init(contextIn))
{
//my code
}
}
}
我有一个上面给出的类,想为 Init 方法编写一个单元测试,并模拟了IAppContext
. 如何使用 mock 绕过对 base 的调用?
这就是我正在做的事情:
Mock<IAppContext> mockContex = new Mock<IAppContext >();
MyClass myClassInstance - new MyClass ();
myClassInstance.Init(mockContex.object);
base.init
看起来像:
public virtual bool Init(IAppContext context_in)
{
if (context_in == null)
{
throw new ArgumentNullException("context_in", "IAppContext argument s null");
}
this.myCommunication = context_in.getInterface<ICommunication>();
if (this.myCommunication == null)
{
throw new ArgumentNullException("myCommunication", "ICommunication argument is null");
}
this.myStateManager = new IStateManager(this.myCommunication);
if (this.myStateManager == null)
{
throw new InvalidOperationException("Could not create the State Manager");
}
return true;
}