TG Telegram Group & Channel
Уютная тумбочка | United States America (US)
Create: Update:

Тестировать софт важно! В Бетуле у меня две системы тестирования. Одна дурацкая и скучная: она написана с нативными гошными средствами тестирования. У меня их CI бегает на каждый пуш и патч.

Другая — весёлая и интересная. Она написана на POSIX Shell. Как известно¹, никакие другие шеллы использовать не стоит, поэтому я использую именно POSIX вариант. Этим скриптом я тестирую веб-морду. Такое тестирование вроде бы называется поведенческим тестированием.

Кто сразу хочет посмотреть этот волшебный скрипт, заходите на сурсхат.

Наверху файла всякая берёзовая оркестрация: вырубаю другую Бетулу, запускаю новую для теста, подчищаю грязь. Потом я определяю процедуры, нужные для тестов. С 75-ой строчки уже идут тесты! Показываю фрагмент кода:

Test 'First screen'
ExpectStatus 200
Get '/'
Check

Test 'Register on first screen'
ExpectStatus 303
Post '/register' -F name=bo -F pass=un
Check

Test 'Access non-existent post'
ExpectStatus 404
Get '/1'
Check

Test 'Create a post'
ExpectStatus 303
Post '/save-link' -F url=
https://bouncepaw.com -F title=Bouncepaw
Check

Test 'Save link: non-URL text to URL'
ExpectStatus 400
ExpectContent 'Invalid link'
Post '/save-link' -F url=Bouncepaw -F title=
Check


И ещё десяток таких. Получился красивый DSL для тестирования! Хорошо подходит для проверки status quo и огранки новых фичей. Сегодня наверное вот так ограню фичу, которую вчера написал (поиск). Правда мне придётся опять расширить число вспомогательных процедур. Как будто уже пора переписать на Рубине весь этот скрипт. Наверное, так и будет когда-нибудь.

1: https://j3s.sh/thought/write-posix-shell.html

Тестировать софт важно! В Бетуле у меня две системы тестирования. Одна дурацкая и скучная: она написана с нативными гошными средствами тестирования. У меня их CI бегает на каждый пуш и патч.

Другая — весёлая и интересная. Она написана на POSIX Shell. Как известно¹, никакие другие шеллы использовать не стоит, поэтому я использую именно POSIX вариант. Этим скриптом я тестирую веб-морду. Такое тестирование вроде бы называется поведенческим тестированием.

Кто сразу хочет посмотреть этот волшебный скрипт, заходите на сурсхат.

Наверху файла всякая берёзовая оркестрация: вырубаю другую Бетулу, запускаю новую для теста, подчищаю грязь. Потом я определяю процедуры, нужные для тестов. С 75-ой строчки уже идут тесты! Показываю фрагмент кода:

Test 'First screen'
ExpectStatus 200
Get '/'
Check

Test 'Register on first screen'
ExpectStatus 303
Post '/register' -F name=bo -F pass=un
Check

Test 'Access non-existent post'
ExpectStatus 404
Get '/1'
Check

Test 'Create a post'
ExpectStatus 303
Post '/save-link' -F url=
https://bouncepaw.com -F title=Bouncepaw
Check

Test 'Save link: non-URL text to URL'
ExpectStatus 400
ExpectContent 'Invalid link'
Post '/save-link' -F url=Bouncepaw -F title=
Check


И ещё десяток таких. Получился красивый DSL для тестирования! Хорошо подходит для проверки status quo и огранки новых фичей. Сегодня наверное вот так ограню фичу, которую вчера написал (поиск). Правда мне придётся опять расширить число вспомогательных процедур. Как будто уже пора переписать на Рубине весь этот скрипт. Наверное, так и будет когда-нибудь.

1: https://j3s.sh/thought/write-posix-shell.html


>>Click here to continue<<

Уютная тумбочка




Share with your best friend
VIEW MORE

United States America Popular Telegram Group (US)