我正在使用Autofixture作为SUT工厂,但在冻结空实例时遇到困难。
我想做一些类似的事情:
_fixture.Freeze<IPayPalConfiguration>(c => null);但很快就意识到这是错误的。我已经使用下面的代码解决了这个问题:
_fixture.Inject((IMyInterface)null);但这看起来不太对。
希望有人能为HiveMind贡献正确的解决方案。
发布于 2012-09-01 00:37:23
在内部,Freeze创建一个被请求类型的实例(例如IPayPalConfiguration),然后注入它,这样当你再次请求它时,它总是会返回该实例。
在这种情况下,通过执行_fixture.Inject((IPayPalConfiguration)null)可以手动注入空引用,因此可以跳过Freeze方法的创建部分。您以手动方式将IPayPalConfiguration冻结为单个值(实际上,此处为空引用)。
请记住,此_fixture.Freeze<IPayPalConfiguration>(c => null)为将尝试解析IPayPalConfiguration的方法传递一个空引用,因此将抛出ArgumentNullException。
https://stackoverflow.com/questions/12218206
复制相似问题