我正在使用 Moq - 但如果需要 可以轻松切换到另一个模拟框架 。
我定义了一个接口(interface):public interface IBaseEngineManagerImp
{
void SetClientCallbackSender(IClientCallbackSender clientCallbackSender);
}
然后我模拟 IBaseEngineManagerImpmockEngineManagerImp = new Mock<IEngineManagerImp>();
EngineManager engineManager = new EngineManager(mockEngineManagerImp.Object);
engineManager 然后调用 SetClientCallbackSender 传入一个值。
如何从我的单元测试中获取传递给 SetClientCallbackSender 的值?
(我希望在 clientCallbackSender 上调用一些方法作为测试的一部分)
最佳答案
您可以在模拟上使用 .Callback 方法,在传入 SetClientCallbackSender 方法的参数上调用任何函数:
mockEngineManagerImp.Setup(x => x.SetClientCallbackSender(It.IsAny<IClientCallbackSender>()))
.Callback((IClientCallbackSender c) => c.DoSomething());
关于.net - 如何在我的模拟(Moq 或 Rhino Mocks)接口(interface)上找到已传递给方法的值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1802580/