Como faço para TDD de um provedor de associação personalizado e de um usuário de associação personalizado?

StackOverflow https://stackoverflow.com/questions/76781

  •  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

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top