Идентичная функция на двух устройствах, но разное поведение / сценарии для тестирования BDD

#testing #bdd #gherkin

#тестирование #bdd #корнишон

Вопрос:

Функция: как пользователь, я хочу иметь возможность изменять годовщину панды

У нас есть две версии нашего приложения: настольная / мобильная

На рабочем столе мы должны перейти на страницу сведений о панде -> мы нажимаем на кнопку изменить дату годовщины -> всплывающее окно, где мы можем ввести новую дату, мы проверяем, и все готово. Это дает этот сценарий :

 Given the user is in the detail page of a panda    
and the user is logged  
When the user update the anniversary date of the panda  
Then the anniversary date is updated  
  

На мобильном устройстве мы должны выбрать меню изменить дату годовщины -> новая страница, где мы вводим имя панды -> нас отправляют на новую страницу, где мы вводим новую дату годовщины. Мы проверяем, и это сделано. Это дает этот сценарий :

 Given the user is in the Change Anniversary mode  
And a panda is selected  
And the user is logged  
When the user update the anniversary date  
Then the anniversary date is updated.   
  

Если мне было легко писать сценарии для рабочего стола, для мобильного я заблокирован в возможном сценарии выбора несуществующей panda. Такое поведение не может существовать на рабочем столе, поскольку у нас есть список panda, и мы должны щелкнуть по одному, чтобы перейти на страницу сведений. Вместо этого на мобильных устройствах мы должны вводить имя panda, поэтому возможно, что мы вводим несуществующее имя. На данный момент у меня есть этот сценарий, но он мне не нравится :

 Given the user is in the Change Anniversary mode  
And the user is logged  
When the user enter a non existing panda name  
Then an error message is shown   
  

amp;

 Given the user is in the Change Anniversary mode  
And the user is logged  
When the user enter an existing panda name  
Then the panda is selected 
  

И я заблокирован, потому что предлагаемая новая функция идентична на обоих устройствах. Нужно ли мне, чтобы мои модели поведения / сценарии совпадали между настольными и мобильными устройствами, или это нормально, что мое поведение / сценарии отличаются в зависимости от платформы? Если я выберу второй вариант, как мне уточнить платформу: в сценарии заголовка или в данном? Как насчет всех других сценариев, которые я уже написал? Я надеюсь, что кто-то уже нашел решение этой проблемы: p

Спасибо за вашу помощь!

РЕДАКТИРОВАТЬ: я добавил функцию заголовка и некоторые сценарии, которые у меня есть на данный момент 🙂

Комментарии:

1. Можете ли вы добавить несколько сценариев к своему вопросу, чтобы мы могли понять, что вы имеете в виду? Я разделен между написанием разных сценариев или перефразированием ваших шагов, чтобы они применялись к каждой платформе. У нас недостаточно информации, чтобы ответить на ваш вопрос.

2. Я добавил название функции и некоторые из моих сценариев, спасибо!

Ответ №1:

Вы говорите, что ваши примеры не очень понятны, On desktop we have to go to the detail page of a panda -> we click to the change anniversary date button -> pop up where we can enter the new date, we validate and it's done. It gives this scenario но в сценарии вы упоминаете, что пользователь зарегистрирован, и я не вижу, где это происходит, до необходимости выбора panda или после.

Насколько я мог понять, у вас есть 2 варианта:

  1. у вас разные сценарии для мобильных и настольных устройств, вы можете добавить тег платформы, например @mobile, и на основе этой вкладки открыть конкретную платформу или просто создать разные наборы, один для мобильных устройств (если у вас есть собственное приложение) и один для настольных компьютеров

  2. не добавляйте конкретные сведения о платформе и не обрабатывайте детали в реализации

Учитывая, что я вошел в систему
Когда я меняю дату годовщины для panda
Затем дата годовщины изменяется

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

Комментарии:

1. ПРИВЕТ! Спасибо за ваш ответ ^^ На самом деле у нас есть много разных сценариев для мобильного приложения. Это не родной, но поскольку он будет использоваться разными пользователями и по-другому, чем настольное приложение, я согласен с тем, что нам нужно разделить наши тесты. Я не упомянул о входе в систему, потому что он находится в фоновом режиме, как будто мы ничего не можем сделать, кроме входа в систему в настольном или мобильном приложении, поэтому я не помещаю его в каждое данное, в bakcground, и это эффективно для всех других сценариев ^^

Ответ №2:

Поскольку мое поведение отличается, и мои пользователи отличаются для мобильного и настольного приложения, я решил разделить свой сценарий и, как сказал Лауда, это дает мне возможность использовать другое решение для проверки, было ли это родным мобильным приложением (не в моем случае сейчас, а для других ^^).

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

../features/anniversary_panda/рабочий стол/

 Background: Login
Given the user is logged in as a panda manager

Scenario: Change anniversary date for a panda
Given the user is in the detail page of a panda    
When the user update the anniversary date of the panda
Then the anniversary date is updated  
  

../особенности/anniversary_panda/мобильный/

 Background: Login
Given the user is logged in as a veterinary

Scenario: Change anniversary date for a panda
Given the user is in the Change Anniversary mode  
And a new date is already entered
When the user enter an existing panda name  
Then the anniversary date is updated
  

Спасибо за вашу помощь, просто объяснение моего случая мне очень помогает 🙂