Size: a a a

QA — Автоматизация

2020 June 15

S

Sergei in QA — Автоматизация
да много что нормально живет 🙂 а вот профит от “1 тест - 1 проверка” не очевиден
источник

ES

Eugene Stogniy in QA — Автоматизация
Sergei
да много что нормально живет 🙂 а вот профит от “1 тест - 1 проверка” не очевиден
если не только Юай а таки ещё всякие юнит / интегрейшон / АПИ то очень даже очевиден
источник

S

Sergei in QA — Автоматизация
и какой?)
источник

ES

Eugene Stogniy in QA — Автоматизация
в ЮАЕ да там все зависит от проекта
источник

EB

Evgenii B in QA — Автоматизация
Eugene Stogniy
Костыли и велосипеды тоже нормально живут ) и зачастую оказываються самыми долгоживущими решениями )
Между костылем и «идеальным кодом» есть большая пропасть, и от того что проверок в тесте стало больше одной, сразу велосипедом он не становится
источник

ES

Eugene Stogniy in QA — Автоматизация
Evgenii B
Между костылем и «идеальным кодом» есть большая пропасть, и от того что проверок в тесте стало больше одной, сразу велосипедом он не становится
сразу может и нет ... а вот когда проверок станет штук 100 и начнет падать на непонятно какой из них ....
источник

EB

Evgenii B in QA — Автоматизация
Eugene Stogniy
сразу может и нет ... а вот когда проверок станет штук 100 и начнет падать на непонятно какой из них ....
между 1ой и 100 проверками тоже большая пропасть
источник

EB

Evgenii B in QA — Автоматизация
преждевременная оптимизация -- корень всех бед
источник

СС

Сказочный Сникерс... in QA — Автоматизация
Ivan Efimov
Предпочитаю String.replace вместо String.format.
При генерации длинных строк с 300+ параметров в случае String.format запихает 300 параметров в стек * один вызов "format" метода.
String.replace поместит 2 параметра в стек * 300 вызовов.
String.format может вызвать stack overflow. Легко ошибиться и перепутать последовательность параметров и их количество это так же приведёт к ошибкам.
Написал бы так: '//div/app-tree-view/ul/li[@class="treenode"]/div[@id = {node_id}]//following-sibling::div//i[1]'.replace('{node_id}', node_id)
Ты это серьезно?!
источник

IE

Ivan Efimov in QA — Автоматизация
да, параметры передаются через стек, локальные переменные - стек
источник

EB

Evgenii B in QA — Автоматизация
Eugene Stogniy
сразу может и нет ... а вот когда проверок станет штук 100 и начнет падать на непонятно какой из них ....
"начнет падать не понятно какой из них"
а разве сообщение об ошибке не содержит строку кода на которой упал тест? а если это fail fast тест, который валится на первом из упавших ассертов?
источник

СС

Сказочный Сникерс... in QA — Автоматизация
Ivan Efimov
да, параметры передаются через стек, локальные переменные - стек
300 раз реплейс будешь дергать? И через какой блин стек оно передается?
источник

СС

Сказочный Сникерс... in QA — Автоматизация
Ты знаешь как формат работает хоть?
источник

IE

Ivan Efimov in QA — Автоматизация
конечно
источник

СС

Сказочный Сникерс... in QA — Автоматизация
И как?
источник

EB

Evgenii B in QA — Автоматизация
>String.format может вызвать stack overflow.

а может и не вызвать. если красноглазием и рокетсаенсом не заниматься, то в 99,99% случаев str.replace юзается как простейший кейс регулярки

а str.format для простых случаев формата строки
источник

СС

Сказочный Сникерс... in QA — Автоматизация
300 реплейсов это в 300 раз дольше 1 формата на 300 параметров
источник

СС

Сказочный Сникерс... in QA — Автоматизация
Это 300 новых объектов
источник

IE

Ivan Efimov in QA — Автоматизация
что выведет printf("%x\n%x\n%x\n%x\n%x\n%x")?
источник

СС

Сказочный Сникерс... in QA — Автоматизация
Ivan Efimov
что выведет printf("%x\n%x\n%x\n%x\n%x\n%x")?
У тебя плохая привычка отвечать вопросом на вопрос
источник