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

Tôi đang cố gắng để kiểm tra tạo người dùng. Từ thử nghiệm của tôi, tôi gọi như sau:Tên nhà cung cấp thành viên được chỉ định không hợp lệ. Tên tham số: 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); 

Trong phương pháp CreateUser, nó được này cho đến nay:

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

... trước khi ném ngoại lệ này:

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

Tôi có Tên của tôi được đặt thành MyMembershipProvider và trong Web.config tôi có điều này:

<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="/" /> 

Và cũng có thể, chuỗi kết nối của tôi:

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

Bây giờ, tôi đoán các vấn đề được rằng các xét nghiệm của tôi đang tạo ra một SQLite DB, và web.config đang cố gắng để đạt DB SQLServer của tôi, nhưng Tôi không chắc chắn làm thế nào để tiến hành.

+1

Bạn có thể hiển thị dòng web.config liên quan đến chuỗi kết nối có tên "ApplicationServices" không? (loại bỏ bất kỳ mật khẩu của khóa học :) – Basic

+0

Tôi đã chỉnh sửa bài viết của tôi. –

Trả lời

8

nên không tên là giống như quy định trong web.config?

tức là OnyxMembershipProvider

+0

Tôi nghĩ rằng điều này cố định nó, và tôi không bao giờ đánh dấu nó như là câu trả lời. Xin lỗi vì dùng quá lâu! –

1

Bạn có thể muốn xem xét chế nhạo nhà cung cấp thành viên. Thử nghiệm đơn vị của bạn phải thử nghiệm của bạn, không phải của Microsoft.

Dưới đây là một số thông tin về việc sử dụng Moq để thử ra các nhà cung cấp thành viên:

What am I doing wrong this time with Moq?

+0

Vấn đề nhẹ ... Tôi đang sử dụng WatiN, vì vậy tôi không có quyền truy cập trực tiếp vào bộ điều khiển. Tôi không nghĩ rằng tôi có thể chế giễu như thế, phải không? –

Các vấn đề liên quan