向Moq.AutoMocker.Use()传入null参数的替代方案咨询
处理Moq.AutoMocker中传入null依赖的替代方案
在Moq.AutoMocker的新版本中,Use<T>方法不再允许直接传入null参数。针对需要注入null依赖的场景,你可以尝试以下几种处理方式:
创建返回null的模拟对象
对于引用类型的依赖,你可以先创建一个Mock<T>实例,按需设置其成员返回null,再将模拟对象传入Use方法:var fooMock = new Mock<IFoo>(); // 示例:设置某个方法返回null fooMock.Setup(f => f.GetTarget()).Returns((TargetType)null); _automocker.Use(fooMock.Object);针对可空值类型直接传入null
如果依赖是可空值类型(如int?、DateTime?),直接指定泛型参数为可空类型后传入null即可:_automocker.Use<int?>(null);通过工厂委托返回null
使用Use方法的重载版本,传入一个返回null的工厂委托,让AutoMocker解析该依赖时返回null:_automocker.Use<IFoo>(() => null);
内容的提问来源于stack exchange,提问作者stuwilmur
相关产品推荐
相关产品推荐

