2010-08-23 22 views
6
  • .Net4.0
  • MVC 2
  • NHibernate
  • NUnit

Je suis en train de tester la création d'utilisateurs. De mon test, j'appelle les suivantes:Le nom du fournisseur d'appartenance spécifié n'est pas valide. Nom du paramètre: providerName

MembershipCreateStatus status; 
// _session is my current NHibernate session. 
var mmp = new MyMembershipProvider(_session); 
mmp.CreateUser(username, password, "[email protected]", "", "", true, Guid.NewGuid(), out status); 

Dans la méthode CreateUser, il obtient jusqu'ici:

var user = new MembershipUser(Name, username, providerUserKey, email, passwordQuestion, passwordAnswer, isApproved, false, DateTime.Now, DateTime.Now, DateTime.Now, DateTime.Now, DateTime.Now); 

... avant de lancer cette exception:

The membership provider name specified is invalid. 
Parameter name: providerName 

J'ai mon nom défini à MyMembershipProvider, et dans le Web.config j'ai ceci:

<add name="OnyxMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices" 
    enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" 
    maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" 
    applicationName="/" /> 

Et aussi, ma chaîne de connexion:

<add name="ApplicationServices" 
    connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" 
    providerName="System.Data.SqlClient" /> 

Maintenant, je devine que le problème est que mes tests créent un SQLite DB et le web.config tente de frapper mon SqlServer DB, mais Je ne suis pas sûr de savoir comment procéder.

+1

Pouvez-vous montrer la ligne web.config relative à la chaîne de connexion nommée « ApplicationServices »? (enlever tous les mots de passe bien sûr :) – Basic

+0

J'ai édité mon post. –

Répondre

8

pas Si le nom est le même que celui spécifié dans le web.config?

à savoir OnyxMembershipProvider

+0

Je pense que cela l'a corrigé, et je ne l'ai jamais marqué comme la réponse. Désolé d'avoir été si long! –

1

Vous pourriez envisager de se moquer du fournisseur d'appartenances. Vos tests unitaires devraient tester votre code, pas celui de Microsoft.

Voici quelques informations sur l'utilisation Moq pour railler le fournisseur d'appartenances:

What am I doing wrong this time with Moq?

+0

Léger problème ... J'utilise WatiN, donc je n'ai pas accès au contrôleur directement. Je ne pense pas pouvoir me moquer comme ça, n'est-ce pas? –