以下是我的代码。我正在使用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);
...
...
}
答案 0 :(得分:1)
你不能与Moq合作。 Activator将始终创建一个您无法访问的新实例,因此您将无法设置所需的模拟行为。
话虽这么说,你可以通过编写自己的存根实现来获得你想要的行为。