Size: a a a

Programming Offtop

2020 July 27

СГ

Сергей Греков... in Programming Offtop
Igor
Кстати, вот как я бота тестирую

- JSON-строка на входе
- Массив JSON-строк на выходе
- и ассерт на них

Каждый тест - это юзкес, а внутри полный black-box.

https://github.com/y2k/purescript-telegram-bot/blob/env/test/Domain2.purs#L17
Найс!
источник

I

Ilmir in Programming Offtop
Igor
Ребят, я тут подумал как можно делать e2e тесты с минимум усилий.

Для этого нужна TheElmArchitecture:
- Берутся стандартные Model Update и заменяемся в View на вызов model.ToString()
- Если модель это data-класс (либо DU из f#) то там будем подробный вывод полей
- В тестах просто сравниваем строки с заданными

В итоге тесты:
- покрывают юзкейсы использования
- НЕ хрупкие, тк не зависят от реализации нижних слоев
- быстрые тк работают на пк

PS
Если при этом фронт изоморфный, то тесты на фронт можно запускать вместе с бэкендом, избегая сетевых вызовов.
Лучше тестировать на присутсвие/отсутствие полей. Иначе, при добавлении/удалении поля придётся переписывать кучу тестов.
источник

AM

Andrew Mikhaylov in Programming Offtop
Konstantin dmz9
хз насчет картинок
источник

AM

Andrew Mikhaylov in Programming Offtop
(блюра в стандартном редакторе телеги не нашёл, пришлось изворачиваться)
источник

Kd

Konstantin dmz9 in Programming Offtop
панятно )
источник

I

Igor in Programming Offtop
Ilmir
Лучше тестировать на присутсвие/отсутствие полей. Иначе, при добавлении/удалении поля придётся переписывать кучу тестов.
когда, будет больше 3-х тестов, подумаю на этим)
источник

ML

Mikhail Levchenko in Programming Offtop
Igor
много букв, но похоже что он логирует вызовы своих free-монад и тестах сравнивает с expected логами
Именно так, правда, проблема в том, что фри не только на входе/выходе, но и внутри
источник

I

Ilmir in Programming Offtop
Igor
когда, будет больше 3-х тестов, подумаю на этим)
Я могу даже поискать коммит, где я задолбался обновлять байткодовые тесты и заменил большиство из них на рантайм.
источник

I

Ilmir in Programming Offtop
И эти рантайм тесты как раз проверяют в рантайме на присутсвие/отссутсвие чего-то.
источник

I

Ilmir in Programming Offtop
Пора клаву на ноуте менять. "С" периодичесски дублируетя или не пропечатывается.
источник

VP

Vladimir Petrakovich in Programming Offtop
Igor
Ребят, я тут подумал как можно делать e2e тесты с минимум усилий.

Для этого нужна TheElmArchitecture:
- Берутся стандартные Model Update и заменяемся в View на вызов model.ToString()
- Если модель это data-класс (либо DU из f#) то там будем подробный вывод полей
- В тестах просто сравниваем строки с заданными

В итоге тесты:
- покрывают юзкейсы использования
- НЕ хрупкие, тк не зависят от реализации нижних слоев
- быстрые тк работают на пк

PS
Если при этом фронт изоморфный, то тесты на фронт можно запускать вместе с бэкендом, избегая сетевых вызовов.
> не хрупкие
> добавил поле и умер
источник

I

Igor in Programming Offtop
учитывая что это "условные ui тесты",
а vm (которую чекаю) это логическое представление ui и все поля там по делу
думаю это честно

но таки да, есть над чем подумать когда их станет много
источник

ML

Mikhail Levchenko in Programming Offtop
Vladimir Petrakovich
> не хрупкие
> добавил поле и умер
и перезапустил все тесты
источник

ML

Mikhail Levchenko in Programming Offtop
Igor
учитывая что это "условные ui тесты",
а vm (которую чекаю) это логическое представление ui и все поля там по делу
думаю это честно

но таки да, есть над чем подумать когда их станет много
это не "условные ui тесты", а snapshot testing
источник

ML

Mikhail Levchenko in Programming Offtop
на фронте популярно, правда, они там прямо отрендеренную html смотрят
источник

VP

Vladimir Petrakovich in Programming Offtop
Mikhail Levchenko
и перезапустил все тесты
Если автоматически перезатирать expected на actual во всех тестах, можно столкнуться с тем, что там окажется дичь, а тесты будут работать как ни в чём ни бывало.
В "обычных" ui-тестах проще заметить такое.
источник

I

Igor in Programming Offtop
Mikhail Levchenko
на фронте популярно, правда, они там прямо отрендеренную html смотрят
Ну кстати у меня тут есть проектик на:
PWA на f# (fable) + backend на f#

вот и думаю как покрыть тестами
- с минимум усилиями
- гонять максимум кода на .net core, без js
источник

ML

Mikhail Levchenko in Programming Offtop
Vladimir Petrakovich
Если автоматически перезатирать expected на actual во всех тестах, можно столкнуться с тем, что там окажется дичь, а тесты будут работать как ни в чём ни бывало.
В "обычных" ui-тестах проще заметить такое.
предполагается, что ты это делаешь вручную, вызывая какой нибудь скрипт с именем теста
источник

K

Krl.samorodov in Programming Offtop
Привет. На каком этапе обучения реально подобрать себе вакансию в Москве? Не из-за денег, а тупо пробелы в знаниях заделать, +опыт коммерческой разработки, ну и больше всего хочу ментора, джунам их вроде ставят
источник

DS

Dmitry Sapronov in Programming Offtop
Просто берешь и рассылаешь резюме. В резюме ничего не преукрашиваешь. По факту и чего хочешь/ожидаешь. Периодически его обновляешь.
источник