2014-02-18 2 views
-1

Я новичок в TDD, и я читаю много книг, чтобы понять концепции TDD.TDD Единичный тест ASP.NET Webforms

У меня мало вопросов, если кто-то может вести меня. Скажем, если я создаю единичный тест для аутентификации входа в систему, мне нужно сначала вставить фиктивного пользователя, а затем проверить методы, основанные на тестовом пользователе, который я вставил?

Для того, чтобы проверить бизнес-логику для аутентификации входа, вот некоторые методы испытаний, что я имею в моей голове:

1- Authenticate_UserId_or_Password_ShouldNotbeNull() 

2- Authenticate_UserId_And_Password_ShouldreturnValidUser() 

Для # 1, я создал метод испытания:

[Test] 
public void Authenticate_UserId_or_Password_ShouldNotbeNull() 
{ 

LoginService login = new LoginService(); 
string strUserId="UserIdTest"; 
string strPassword="PasswordTest"; 

login.Authenticate(strUserId, strPassword); 

// What assert method should I use to test it? 

} 

Также еще один вопрос, я читал об издевательстве. Издевается над другим именем прокси-шаблона?

+0

В случае, если номер один вам не нужно высмеивать, в случае номер 2, я думаю, вам нужно. Но это зависит. Не могли бы вы предоставить метод для тестирования? Например, если вы используете класс 'Membership' (как часто используется в контроллере учетной записи ASP.NET), его очень сложно проверить (поскольку он является статическим). Если это так, я бы порекомендовал начать в другом месте :-) – core

+0

Ну, я не использую членский класс. У меня есть собственная система входа в систему. Не могли бы вы предоставить мне подробный ответ для номера 1. Как я могу создать модульный тест для Authenticate_UserId_or_Password_ShouldNotbeNull() – fais

+0

Спасибо Джону за улучшение вопроса. – fais

ответ

0

В общем, вы не хотите использовать TDD для пользовательского интерфейса. Если вы сохраняете чистое разделение между пользовательским интерфейсом и бизнес-логикой, тогда вы можете более легко протестировать бизнес-логику, которая является частью, которая, скорее всего, сломается.

Другие методы тестирования могут быть использованы для тестирования пользовательского интерфейса, хотя это еще не очень подходит для TDD.

+0

Я не использую TDD на слое пользовательского интерфейса. Я пытаюсь создать уровень логической логики через технику TDD. Также это веб-приложение. Я знаю без TDD, я могу легко реализовать его. – fais

+0

Но вы видите, в этом случае вам не нужно было указывать, что вы работали над проектом Web Forms или даже это ASP.NET. Бизнес-логика должна быть независимой от того, используете ли вы ASP.NET или нет. Включив тот факт, что это ASP.NET, вы заставили читателей полагать, что это _mattered_, что это ASP.NET. –

+0

Я согласен и очень благодарю за вашу помощь. Позвольте мне изменить вопрос дальше. – fais

Смежные вопросы