Size: a a a

testing_in_python

2020 September 04

S

Sergei in testing_in_python
источник

BK

Boris Krutskih in testing_in_python
Такой вопрос по красоте написания тестов)
Как вы предпочитает вызывать в тестах методы с действиями и как более правильно.
Через chain:
 analytic. \
           fill_search_field(sensor_id). \
           click_view_button_without_read(). \
           click_accept_report_button(). \
           fill_analyst_closing_comment_field(comment=f'Auto test comment #{r}'). \
           click_submit_btn()
или же ложить эти все шаги в один метод и вызывать просто
analytic.create_somethig(parameters)

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

S

Sergei in testing_in_python
если решаются такие вопросы, то видимо в проекте уже других проблем нет :)
источник

BK

Boris Krutskih in testing_in_python
Sergei
если решаются такие вопросы, то видимо в проекте уже других проблем нет :)
пока что нет :D просто у меня в проекте используется сейчас оба варианта, но мож всё-таки лучше какой-то один использовать чтобы не путаться в будущем)
источник

СС

Сказочный Сникерс... in testing_in_python
Boris Krutskih
Такой вопрос по красоте написания тестов)
Как вы предпочитает вызывать в тестах методы с действиями и как более правильно.
Через chain:
 analytic. \
           fill_search_field(sensor_id). \
           click_view_button_without_read(). \
           click_accept_report_button(). \
           fill_analyst_closing_comment_field(comment=f'Auto test comment #{r}'). \
           click_submit_btn()
или же ложить эти все шаги в один метод и вызывать просто
analytic.create_somethig(parameters)

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

СС

Сказочный Сникерс... in testing_in_python
выглядит стремно
источник

СС

Сказочный Сникерс... in testing_in_python
ну типа за счет длинных названий ты лучше то не сделал, в 1 строку не получилось
источник

IS

Idi Suda in testing_in_python
Boris Krutskih
Такой вопрос по красоте написания тестов)
Как вы предпочитает вызывать в тестах методы с действиями и как более правильно.
Через chain:
 analytic. \
           fill_search_field(sensor_id). \
           click_view_button_without_read(). \
           click_accept_report_button(). \
           fill_analyst_closing_comment_field(comment=f'Auto test comment #{r}'). \
           click_submit_btn()
или же ложить эти все шаги в один метод и вызывать просто
analytic.create_somethig(parameters)

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

СС

Сказочный Сникерс... in testing_in_python
в итоге стало нечитаемо с переносами + если будет ошибка хрен ты поймешь в каком методе по трейсу
источник

IS

Idi Suda in testing_in_python
И кстати, лучше писать
analytic.
           .fill_search_field(sensor_id)
\
           .click_view_button_without_read()
\
           .click_accept_report_button()
\
           .fill_analyst_closing_comment_field(comment=f'Auto test comment #{r}')
           .click_submit_btn()

Чем эту ебню читать с точками на конце
источник

IP

Ivan Petrov in testing_in_python
Я не обещаю пояснить за методологическую верность такого подхода, но, прагматично мысля, если бы мне такое дали поддерживать, я бы переписал.
Только недавно в интернете видел пример такого подхода и подумал - "кто так делает?"
источник

СС

Сказочный Сникерс... in testing_in_python
и уж если добить, то 99% что ты тупо в каждом методе в конце копипастишь  return self
источник

СС

Сказочный Сникерс... in testing_in_python
если уж делать чейнинг, то чейнинг класс должен сам возвращать self на каждый чейн метод
источник

BK

Boris Krutskih in testing_in_python
Idi Suda
И кстати, лучше писать
analytic.
           .fill_search_field(sensor_id)
\
           .click_view_button_without_read()
\
           .click_accept_report_button()
\
           .fill_analyst_closing_comment_field(comment=f'Auto test comment #{r}')
           .click_submit_btn()

Чем эту ебню читать с точками на конце
ну это pycharm у меня подправил))))
источник

BK

Boris Krutskih in testing_in_python
т.е больше поддерживаете такой подход?)
Тест:
 analytic.create_action_item(
           facility=facility_name,
           title=f"Auto test [Issue title] #{r}",
           desc=f"Auto test [Description] #{r}"
       )

Класс с методами:
    def create_action_item(self, facility, title, desc):
       self.click_go_to_analytics_button()
       self.click_facility_dropdown()
       self.select_facility_from_list_by_search(facility)
       self.click_create_action_item_button()
       self.click_submit_action_item_button()
       self.fill_issue_title_field(title)
       self.select_urgency_for_action_item()
       self.fill_action_item_description_field(desc)
       self.confirm_action_item_creation()
источник

СС

Сказочный Сникерс... in testing_in_python
+
источник

IP

Ivan Petrov in testing_in_python
Почему я да: потому что любой джуниор сможет понять, где упало
источник

V

Vyacheslav in testing_in_python
Да просто в конкретном случае чейн нафиг не нужен
источник

BK

Boris Krutskih in testing_in_python
А в каких случаях вы используете chain?
источник

DS

Den Skif in testing_in_python
chain используется в основном в JS
источник