Como faço para TDD de um provedor de associação personalizado e de um usuário de associação personalizado?
-
09-06-2019 - |
Pergunta
Preciso criar um usuário e provedor de associação personalizado para um aplicativo ASP.NET mvc e pretendo usar o TDD.Eu criei uma classe User que herda da classe MembershipUser, mas quando tento testá-la recebo um erro que não consigo descobrir.Como posso atribuir um nome de provedor válido?Preciso apenas adicioná-lo ao web.config?Mas nem estou testando o aplicativo da web neste momento.
FAKE] usertests.setup.usersHouldHaveMembershipUserProperties testCase 'userTests.setup.usersHouldHaveMembershipUserProperties' falhou:O nome do provedor de associação especificado é inválido.Nome do parâmetro:providername system.argumentException mensagem:O nome do provedor de associação especificado é inválido.Nome do parâmetro:Origem do nome de providências:Sistema.Web
Solução
A configuração a ser adicionada ao arquivo de configuração do projeto de teste de unidade seria mais ou menos assim:
<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>
Outras dicas
Sim, você precisa configurá-lo em seu arquivo de configuração (provavelmente não web.config para uma biblioteca de teste, mas app.config).Você ainda usa a seção e dentro dela a seção para fazer a configuração.Depois de fazer isso, você poderá instanciar seu usuário e testá-lo.Nesse ponto, você provavelmente encontrará novos problemas, que você deve postar como perguntas separadas, eu acho.