Come faccio a TDD un fornitore di abbonamento personalizzato e un utente di abbonamento personalizzato?
-
09-06-2019 - |
Domanda
Devo creare un utente e un provider di appartenenza personalizzati per un'app mvc ASP.NET e sto cercando di utilizzare TDD.Ho creato una classe User che eredita dalla classe MembershipUser, ma quando provo a testarla ricevo un errore che non riesco a capire.Come posso assegnargli un nome fornitore valido?Devo solo aggiungerlo a web.config?Ma a questo punto non sto nemmeno testando l'app Web.
fallimento] usertests.setup.usershouldHaveMembershipUserProperties TestCase 'usertests.setup.usershouldHaveMeMembersHipUserProperties' non riuscito:Il nome del provider di appartenenza specificato non è valido.Nome del parametro:ProviderName System.ArgumentException Messaggio:Il nome del provider di appartenenza specificato non è valido.Nome del parametro:ProviderName Fonte:Sistema.Web
Soluzione
La configurazione da aggiungere al file di configurazione del progetto di unit test sarebbe simile a questa:
<connectionStrings>
<remove name="LocalSqlServer"/>
<add name="LocalSqlServer" connectionString="<connection string>" providerName="System.Data.SqlClient"/>
</connectionStrings>
<system.web>
<membership defaultProvider="provider">
<providers>
<add name="provider" applicationName="MyApp" type="System.Web.Security.SqlMembershipProvider" connectionStringName="LocalSqlServer" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" requiresQuestionAndAnswer="false" maxInvalidPasswordAttempts="3" passwordAttemptWindow="15"/>
</providers>
</membership>
</system.web>
Altri suggerimenti
Sì, devi configurarlo nel tuo file di configurazione (probabilmente non web.config per una libreria di test, ma app.config).Utilizzi ancora la sezione e all'interno di essa la sezione per eseguire la configurazione.Una volta installato, sarai in grado di creare un'istanza del tuo utente e iniziare a testarlo.A quel punto probabilmente incontrerai nuovi problemi, che dovresti pubblicare come domande separate, credo.