模拟稍后将实例化的接口
本文关键字:接口 实例化 模拟 | 更新日期: 2023-09-27 18:00:05
下面是我的代码。我正在使用Moq库。而不是让Moq为我创建一个实例。我需要转换成一个类型,然后传递给某人来创建实例。我该怎么做?
var mock = new Mock<IFoo>();
mock.Setup(foo => foo.Bar()).Returns(true);
// Test the actual method
DoSomething(mockedIStateProvider.Object.GetType());
// Not my code, it's a 3rd party library, not allowed to change
public void DoSomething(Type type)
{
Activator.CreateInstance(type);
...
...
}
您不能使用Moq。Activator总是会创建一个你无法访问的新实例,这样你就无法设置你想要的嘲笑行为。
话虽如此,您可能可以通过编写自己的存根实现来获得您想要的行为,该实现将始终执行您想要的操作。