如何通过System.Type变量创建Moq Mock?(Rhino迁移场景)
如何通过System.Type变量创建Moq的Mock?
当然可以,Moq提供了非泛型的API来实现通过System.Type变量创建Mock,无需依赖泛型参数,完美适配你现有基于类型变量的代码逻辑。
方法1:直接实例化非泛型Mock类
通过Mock的非泛型构造函数传入目标类型,再通过Object属性获取Mock实例:
var targetType = typeof(/* 你的目标类型 */); var mock = new Mock(targetType); var stubInstance = mock.Object;
方法2:使用Mock.Of的非泛型重载
如果不需要操作Mock对象本身,只想直接获取Mock实例,可使用此方式:
var targetType = typeof(/* 你的目标类型 */); var stubInstance = Mock.Of(targetType);
配置Mock行为
后续配置方法返回值、验证调用等操作,可结合反射或非泛型Setup方法实现,和泛型版本逻辑一致:
// 示例:配置指定方法的返回值 var methodInfo = targetType.GetMethod("YourMethodName"); mock.Setup(methodInfo).Returns(yourExpectedReturnValue);
内容的提问来源于stack exchange,提问作者rominator007
相关产品推荐
相关产品推荐

