1

Я создал приложение MVC, и я установил Roger Martin's sqlite Providers вместо поставщиков по умолчанию. Мне любопытно, как я буду тестировать блок.Unit Testing Sqlite Memberhip Provider в приложении MVC

Ниже приведен урезанный метод, который имеет много проверок, только один из которых все еще присутствует. Среди прочего, я хочу написать тесты, которые гарантируют, что невозможно зарегистрировать, если имя пользователя было принято, и может зарегистрироваться, если имя пользователя является бесплатным (и другие проверки) и т. Д.

Я могу видеть, как модульные тесты может определить успех или неудачу, но не сбой по определенной причине, если я не проверю выходной параметр MemberhipCreateStatus, но я не уверен, есть ли лучший способ. Кроме того, что мне нужно предоставить для объекта providerUserKey? Любое понимание было бы очень полезно.

public override MembershipUser CreateUser(string username, string password, string email, string passwordQuestion, string passwordAnswer, bool isApproved, object providerUserKey, out MembershipCreateStatus status) 
    { 
    //some validations, and then: 

    MembershipUser u = GetUser(username, false); 
    if (u == null) 
    { 
    ///register user 
      status = MembershipCreateStatus.Success; 
      return GetUser(username, false); 
    } 
    else 
    { 
    status = MembershipCreateStatus.DuplicateUserName; 
    } 

    return null; 
    } 
+0

Вы пытаетесь модульного тестирования кода в провайдере SQLite членства или в контроллере? –

+0

На данный момент поставщик членства SQLite. Я хочу удостовериться, что регистрация аккаунта отклоняется по определенной и веской причине. Я еще не начал писать контроллер, но я не вижу проблемы с написанием тестов для него. – splatto

ответ

0

Используйте переменную в out MembershipCreateStatus status вывода, чтобы определить причину сбоя (duplicte имя пользователя, пароль недействительный, дублирует электронную почту, и т.д.).

значение будет одним из следующих:

MembershipCreateStatus.Success 
MembershipCreateStatus.DuplicateUserName 
MembershipCreateStatus.DuplicateEmail 
MembershipCreateStatus.InvalidPassword 
MembershipCreateStatus.InvalidEmail 
MembershipCreateStatus.InvalidAnswer 
MembershipCreateStatus.InvalidQuestion 
MembershipCreateStatus.InvalidUserName 
MembershipCreateStatus.ProviderError 
MembershipCreateStatus.UserRejected