我正在使用Autofixture作为SUT工厂,并且在冻结空实例时遇到困难.
我想做点什么:
_fixture.Freeze<IPayPalConfiguration>(c => null);
Run Code Online (Sandbox Code Playgroud)
但很快意识到这是错误的.我使用这个解决了这个问题:
_fixture.Inject((IMyInterface)null);
Run Code Online (Sandbox Code Playgroud)
但它似乎不对.
希望有人能为HiveMind贡献正确的解决方案.
在内部,Freeze
创建一个请求类型的实例(例如IPayPalConfiguration
),然后将其注入,以便在您再次请求时始终返回该实例.
在该特定情况下,通过_fixture.Inject((IPayPalConfiguration)null)
手动注入空引用,以便跳过方法的创建部分Freeze
.你冻结的IPayPalConfiguration
为单个值(实际上,空在这里引用),但以手动方式.
请记住,这_fixture.Freeze<IPayPalConfiguration>(c => null)
会为尝试解析的方法传递一个空引用IPayPalConfiguration
,因此会抛出ArgumentNullException.
归档时间: |
|
查看次数: |
600 次 |
最近记录: |