Come applicare IoC (o qualcosa di simile) a una costante?

0

Ho la seguente classe con i seguenti membri:

public class RegistrationPresenter : EPiPresenter<IRegistrationView, LoginPage>, IDisposable
{
    private readonly static string[] DefaultUserRoles = { AppRoles.RegisteredRole, AppRoles.EveryoneRole, AppRoles.ManagerUserRole };

    private readonly INavigator navigator;
    private readonly ISpanishProvincesHelper spanishProvincesHelper;
    private readonly IContentHelper contentHelper;
    private readonly IUserDataHelper userDataHelper;

    public RegistrationPresenter(IRegistrationView view, LoginPage page, INavigator navigator, 
        ISpanishProvincesHelper spanishProvincesHelper, IContentHelper contentHelper, IUserDataHelper userDataHelper)
        : base(view, page)
    {
....
 }

Sono riuscito a legare tutti i membri di sola lettura con un contenitore IoC (Ninject nel mio caso), fatta eccezione per la stringa statica [], che non so come fare. Quale approccio dovrei scegliere o come potrei applicare IoC ai valori DefaultUserRoles, quindi sono in grado di deriderlo durante il test dell'unità?

    
posta David Jiménez Martínez 28.03.2014 - 14:00
fonte

1 risposta

1

1) sei sicuro di dover prendere in giro la tua costante?

2) Usa Microsoft Fakes, che sostituirà felicemente la tua stringa con una diversa in fase di test (un approccio che funziona magnificamente quando si testano più problemi del mondo reale, come ad esempio la data / ora corrente)

(ovviamente, se usi Fakes, non avresti bisogno di disturbarti con ninject :))

    
risposta data 28.03.2014 - 15:29
fonte

Leggi altre domande sui tag