Написание функции / сценария огурца для использования сайта (в качестве администратора, пользователя и гостя) - PullRequest
0 голосов
/ 19 января 2011

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

И вот конкретные сценарии, которые я хочу протестировать:

  • Зарегистрированные пользователи могут просматривать свои частные списки задач (но не кто-то другой).личный список дел других пользователей)
  • Гости (анонимные пользователи) могут просматривать только общедоступные списки задач
  • Администраторы могут просматривать все списки
  • Управление списками задач

Прямо сейчас я собираюсь что-то вроде этого:

Feature: Managing Todo lists
  In order to be more productive
  As a user of the site
  I want to be able to manage todo lists

Background:
  Given a user named "user-one@email.com" with password "secret-one"
  Given a user named "user-two@email.com" with password "secret-two"
  Given an admin named "admin@email.com" with password "admin"

Scenario: user-one@email.com can view his own private todo lists
Scenario: user-one@email.com can not view user-two@email.com private todo lists
Scenario: admin@email.com can view user-one@email.com and user-two@email.com private todo lists
Scenario: user-one@email.com can create private todo lists
Scenario: user-one@email.com can delete todo lists they own
Scenario: admin@email.com can delete user-one@email todo list
Scenario: guests can view all public todo lists

Проблема, с которой я сталкиваюсь, заключается в настройке для каждого сценария.Например, в первом сценарии я должен предположить, что в систему вошел user-one@email.com. В первом сценарии admin@email.com я должен предположить, что администратор вошел в систему. В последнем сценарии я должен предположить, что никто не вошел в систему.

Итак, как мне управлять этими Given с?Должен ли я просто добавить

Given user-one@email.com is logged in

к каждому сценарию?Или есть лучший способ структурировать все это?Пожалуйста помоги!Я уверен, что это очень распространенный шаблон, который нужно тестировать пользователям огурцов.

1 Ответ

1 голос
/ 19 января 2011

Обычно я пытаюсь перечислить только важные шаги.В вашем случае я бы сделал что-то вроде:

Feature: Managing Todo lists
  In order to be more productive
  As a user of the site
  I want to be able to manage todo lists

Background:
  Given a user named "user-one@email.com" with password "secret-one"
  Given a user named "user-two@email.com" with password "secret-two"
  Given an admin named "admin@email.com" with password "admin"

Scenario: Users can see own private todo lists
  Given user "user-one" has a private todo list
  Then user "user-one" can see the private todo list of "user-one"

Scenario: Users cannot see others private todo lists
  Given user "user-one" has a private todo list
  Then user "user-two" cannot see the private todo list of "user-one"

Если у вас есть шаг входа в систему в другом месте, вы можете повторно использовать этот шаг в определении шага Then user "user-one" can see the private todo list of "user-one", а не в функции.Или ваш шаг может просто поделиться одним и тем же кодом напрямую.

См. Повторное использование шага

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...