Size: a a a

Programming Offtop

2020 July 27

Kd

Konstantin dmz9 in Programming Offtop
Igor
А как ты "expected" модель создашь? Там будет здоровая портяка инциализации полей, а строки можно хоть с диска брать
сериализует в жсон в другом порядке и тест заруинится
источник

КР

Кирилл Романенко... in Programming Offtop
Igor
А как ты "expected" модель создашь? Там будет здоровая портяка инциализации полей, а строки можно хоть с диска брать
Так на диск тебе же надо как-то положить, значит ты до этого создаёшь expected модель.
источник

AD

Aleksey D. in Programming Offtop
Igor
А как ты "expected" модель создашь? Там будет здоровая портяка инциализации полей, а строки можно хоть с диска брать
да, будет именно такая портянка
а чего сложного описать нужное количество раз expected-модели?
и чем это отличается от написания строк?
модели еще и красным будут гореть, если забыл тесты обновить, а строки только в рантайме падать будут
источник

ML

Mikhail Levchenko in Programming Offtop
источник

I

Igor in Programming Offtop
Кирилл Романенко
Так на диск тебе же надо как-то положить, значит ты до этого создаёшь expected модель.
Я первый раз запускаю с actual == "" и строку из ошибки копирую в expected 😏
источник

КР

Кирилл Романенко... in Programming Offtop
Igor
Я первый раз запускаю с actual == "" и строку из ошибки копирую в expected 😏
Лол. :D
источник

I

Igor in Programming Offtop
Aleksey D.
да, будет именно такая портянка
а чего сложного описать нужное количество раз expected-модели?
и чем это отличается от написания строк?
модели еще и красным будут гореть, если забыл тесты обновить, а строки только в рантайме падать будут
> строки только в рантайме падать будут

так на то и тесты, шо бы в рантайме запустить
источник

I

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

СГ

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

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

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

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

I

Igor in Programming Offtop
Кстати, вот как я бота тестирую

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

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

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

Kd

Konstantin dmz9 in Programming Offtop
Igor
Кстати, вот как я бота тестирую

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

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

https://github.com/y2k/purescript-telegram-bot/blob/env/test/Domain2.purs#L17
ну, нормально, тоже так делаю только я их в объекты превращаю чтоб от сериализации не зависеть
источник

AD

Aleksey D. in Programming Offtop
Igor
> строки только в рантайме падать будут

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

I

Igor in Programming Offtop
Konstantin dmz9
ну, нормально, тоже так делаю только я их в объекты превращаю чтоб от сериализации не зависеть
Куда ты картинку удали, такая красота была (продакшен небось был))
источник

Kd

Konstantin dmz9 in Programming Offtop
Igor
Куда ты картинку удали, такая красота была (продакшен небось был))
понял что там эндпойнты, надо не палить )
источник

AD

Aleksey D. in Programming Offtop
Konstantin dmz9
понял что там эндпойнты, надо не палить )
в истории у админов останется же, не?
источник

Kd

Konstantin dmz9 in Programming Offtop
не, не прод, дев сервера так то но всеравно )
источник

I

Igor in Programming Offtop
жди гостей (шутка)
источник

I

Igor in Programming Offtop
источник

Kd

Konstantin dmz9 in Programming Offtop
Aleksey D.
в истории у админов останется же, не?
хз насчет картинок
источник

Kd

Konstantin dmz9 in Programming Offtop
та эт всеравно серваки не наши а вышестоящих аутсосеров так что пох )))
источник