t.me/atinfo_chat Telegram группа по автоматизации тестирования

Какие есть Best Approaches\OOP\Patterns для автоматизации API?

oop
design-patterns
api
javascript
frisbyjs
Теги: #<Tag:0x00007f9c5cecef78> #<Tag:0x00007f9c5cecede8> #<Tag:0x00007f9c5ceceb18> #<Tag:0x00007f9c5cece8e8> #<Tag:0x00007f9c5cece780>

(Alex M) #1

Привет!
Пишу автотесты для АПИ с помощью FrisbyJS. Уже давно пытаюсь применить какие-то подходы\паттерны, которые я использовал для UI тестов, но все тщетно. Код не стает лучше, по моему мнениею.
В Фризби используется чейнинг, и если начинать все дробить и добавлять какие-то врапперы, например, то приходиться “создавать велосипед заново”. Вот есть функция для проверки Хидера, которая чейнится с реквеста, все что нужно - добавить .expect('header', headerName, headerValue).
А если пытаюсь все это завраппить - нужно создавать новый инстанс класса, передавать в него респонс, в респонсе искать хидер, и писать новое сравнение с Chai, что в итоге превращает ту же проверку хидера в
const verify = new ClassWithVerifications(response); verify.expectHeaderToBe(headerName, headerValue);. А это еще + класс, конструктор, методы, дробление респонса…

Как тут применять ООП? Какие паттерны есть именно для структуры кода?
Я нашел всякие Builder\Factory\Controller паттерны, но Билдер и Фактори это просто работа с Объектами, а Контроллер является чем-то вроде враппера, который собирает риквест.

Нужно ли в таких фреймворках, как Фризби, пытаться добавить какой-то дизайн сверху? Если да - зачем пишутся такие фреймворки, которые нужно допиливать\перепиливать, чтобы подходило?
Или я пытаюсь натянуть сову на глобус?

Помогите, пожалуйста) Направьте, куда нужно :slight_smile:

Спасибо!


(Vatslau) #2

судя по гитхабу - это создано для захардкоженых тестов по быстрому
если нужны обёртки для проверки транзакций в которых например несколько запросов
смотрите в сторону обычных ХТТП клиентов - Unirest например есть порт для JS
http://unirest.io/nodejs.html (хотя это тоже не чистый клиент- много DSL сахара - но уже близко)