140 likes | 549 Views
Вторая конференция .NET разработчиков. Эффект SpecFlow. Алёна Попова Indy Code a.o.popova@gmail.com. План. Что такое тестовый сценарий ? Схема работы тестов Пример, как было до SpecFlow ( демо) Откуда взялся SpecFlow у нас ( демо) История развития проекта SpecFlow
E N D
Вторая конференция .NET разработчиков Эффект SpecFlow Алёна Попова IndyCode a.o.popova@gmail.com
План • Что такое тестовый сценарий? • Схема работы тестов • Пример, как было до SpecFlow (демо) • Откуда взялся SpecFlow у нас (демо) • История развития проекта SpecFlow • Преимущества использования
Схема работы тестов xUnit Selenium Тестовый сценарий 1 Тестовый сценарий 2 Web-приложение … База данных
Реализация тестового сценария [ExtendedFact] public void UserCanLogOn() { const string userPassword = "123"; Account user = EmployeeWorkspaceDatabase.AddUser(Configuration.GenerateUniqueLogin(), Configuration.GenerateUniqueName(), Configuration.GenerateUniqueName(), Configuration.GenerateUniqueName(), userPassword); Website.LogOn(user.Login, userPassword); Website.VerifyTextPresent(StringConstants.PersonalPage); Website.VerifyTextPresent(user.ShortName); AssertExtensions.HasLog(user, AuthorizationActType.LogIn, DateTime.Now); }
Проблемы этой реализации • Неуправляемый код в тестах • Сценарий и код в одном • Сценарий на C# приходится переводить на живой язык
Тот же сценарий на огурце Фича: Log On Ввeсти корректный логин и корректный пароль. Предыстория: Дано заходим на форму авторизации Сценарий: ввeсти корректный логин и корректный пароль Дано добавляем пользователя в базу данных И вводим корректный логин И вводим корректный пароль Когда пользователь нажимает кнопку Вход Тогда пользователь попадает в личный кабинет
Преимущества • Разделение сценария и кода • Разделение работы по написанию сценария и его реализации • Сценарии на языке заказчика • Повторное использование шагов
Демо для продвинутых • Параметры • Структура сценариев
Спасибо за внимание Алёна Попова IndyCode a.o.popova@gmail.com