【发布时间】:2015-06-10 06:26:18
【问题描述】:
我正在使用起订量。是否可以基于现有的真实实例创建模拟对象? 我的类作为初始化有点复杂,它从外部 xml 文件加载一些信息。我已经有一些例程来进行这个初始化,并且可以很容易地得到一个存在的对象。我想如果 Moq 可以从这个现有的实例中创建一个模拟对象,并且通常会调用真实的实例,除非我设置了调用。我知道我可以通过将 CallBase 设置为 true 来获得一个模拟对象,但我需要对模拟对象进行许多初始化。这是我的希望:
MyClass myclass = GetMyClass();
var mock = Mock.Get<MyClass>(myclass); // This will raise exception because myclass is not a mock object
mock.SetUp<String>(p=>p.SomeMethod).Returns("Test String"); // Only SomeMethod() should be mocked
// this will call SomeMethod and get the test string, for other methods that are not mocked will do the real calls
myclass.DoRealJob();
如果可能的话,谢谢你的任何想法。
【问题讨论】: