LINUX.ORG.RU

REST API тестирование

 , ,


2

3

Есть сервис, написанный на Node.JS, который общается с внешним миром через REST API. Хочу покрыть апи тестами, чтобы порефакторить внутренности, но судя по всему чуть менее чем все тестовые фреймворки для ноды - ад и израиль. Зачем мне блин асинхронное тестирование, я наоборот хочу последовательность запросов протестировать. Начинаю склоняться к тому, чтобы заюзать для тестов какой-нибудь питон или еще что-то. Но может быть я просто что-то делаю неправильно и на самом деле так и должен выглядеть тестовый фреймворк? Вобщем как анонимус тестирует REST API?

у тебя там сессионость или что? в чем проблема с асинхронностью?

trashymichael ★★★ ()
Ответ на: комментарий от trashymichael

ну, условно говоря, я создаю POST'ом объект, потом хочу его же GET'нуть обратно, изменить PUT'ом и GET'нуть снова. Для этого мне надо полученный от POST'а айдишник объекта хранить между всеми этими запросами, так что асинхронно не получается. Асинхронно с такой же последовательностью, но для другой сущности - да, а внутри нет

marvin_yorke ★★★ ()

а модуль async там применить разве никак нельзя?

gavlig ★★★ ()
Ответ на: комментарий от marvin_yorke

я не совсем врубаю о чем ты, ты вообще смотрел на мочу, чай, жасмин и прочее?

trashymichael ★★★ ()
Ответ на: комментарий от marvin_yorke

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

trashymichael ★★★ ()

я наоборот хочу последовательность запросов протестировать.

а нельзя запрос №2 делать типа в колбеке success функции №1, запрос №3 в колбеке success функции № 2 и так далее?

Alve ★★★★★ ()

Все без проблем тестируется, mocha + supertest для этого вполне пригодны. Если есть зависимости, то before и beforeEach помогут, просто чуток с фреймворками разобраться, ничего сложного.

f0rk ()
Ответ на: комментарий от marvin_yorke

Собственно, что мешает записать последовательные действия через асинхронные?

Например,

runAsyncOperation1({
   ..., 
   onSuccess: function(data) {
      check(data);
      runAsyncOperation2({
         ..., 
         onSuccess: ...
      });
   }
});

BlackHawk ()
Ответ на: комментарий от trashymichael

короче вроде собрал нормальный сетап - mocha + request + expect.js
просто во всех примерах обычно рассматривается юнит-тестирование, там все просто, а у меня немного другой случай. я хотел узнать, есть ли специализированные инструменты для тестирования именно API, чтобы большую часть работы автоматизировать. Но походу нормальных нет, поэтому придется самому

marvin_yorke ★★★ ()

mocha + should + supertest

см. Lynda. Node.js Essential Training\06. Unit Testing\05. Simulating HTTP requests with SuperTest.mp4

EnterpriseMobility ()

Если в тесте надо дергать несколько ендпойнтов, то они живо начинают смахивать на говно. cbhell никто не отменял.

bj ()
Ответ на: комментарий от EnterpriseMobility

Когда вам запилят генераторы и нормальную асинхронность, тогда и поговорим о фичах.

bj ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.