2012-08-31 15 views
7

Sto utilizzando l'autofocus come fabbrica SUT e sto avendo difficoltà nel congelare istanze null.Come congelare un'istanza null in AutoFixture

mi piacerebbe fare qualcosa di simile:

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

ma subito capito che era sbagliato. Ho risolto il problema utilizzando questo:

_fixture.Inject((IMyInterface)null); 

ma non sembra giusto.

Speriamo che qualcuno possa contribuire alla soluzione corretta di HiveMind.

risposta

6

Internamente, Freeze crea un'istanza del tipo richiesto (ad esempio IPayPalConfiguration) e poi inietta che così sarà sempre tornare tale istanza quando si richiede di nuovo.

In tal caso, facendo _fixture.Inject((IPayPalConfiguration)null) si inserisce il riferimento null manualmente in modo da saltare la parte di creazione del metodo Freeze. È freeze il IPayPalConfiguration in un singolo valore (in realtà, un riferimento null qui) ma in modo manuale.

Tenete a mente che questo _fixture.Freeze<IPayPalConfiguration>(c => null) passa un riferimento nullo per il metodo di che cercherà di risolvere il IPayPalConfiguration e per questo motivo un ArgumentNullException viene generata.

+0

Grazie per il feedback, e almeno la conferma che non sto facendo la cosa sbagliata –

Problemi correlati