8

Autofixture を SUT ファクトリとして使用していますが、null インスタンスのフリーズに問題があります。

私は次のようなことをしたいと思います:

_fixture.Freeze<IPayPalConfiguration>(c => null);

しかし、それは間違いだとすぐに気づきました。私はこれを使用して問題を回避しました:

_fixture.Inject((IMyInterface)null);

しかし、それは正しくないようです。

うまくいけば、誰かが HiveMind に正しい解決策を提供してくれるでしょう。

4

1 に答える 1

6

内部的にFreeze、要求された型 (例: IPayPalConfiguration) のインスタンスを作成し、それを注入して、再度要求したときに常にそのインスタンスを返すようにします。

その特定のケースでは、null 参照を手動で挿入することにより、メソッド_fixture.Inject((IPayPalConfiguration)null)の作成部分をスキップします。を単一の値 (実際には、ここでは null 参照) にフリーズFreezeますが、手動の方法で行います。IPayPalConfiguration

これにより、解決しようとするメソッド_fixture.Freeze<IPayPalConfiguration>(c => null)に null 参照が渡されるため、ArgumentNullException がスローされることに注意してください。IPayPalConfiguration

于 2012-08-31T16:37:22.883 に答える