Тестирование УСПОКОИТЕЛЬНОГО API с Огурцом во фронтэнде меньше приложения

Ладно, ребята!

Вот мой ответ!

DELIMITER_VAL='='

read -d '' F_ABOUT_DISTRO_R <<"EOF"
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION="Ubuntu 14.04.4 LTS"
NAME="Ubuntu"
VERSION="14.04.4 LTS, Trusty Tahr"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 14.04.4 LTS"
VERSION_ID="14.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
EOF

SPLIT_NOW=$(awk -F$DELIMITER_VAL '{for(i=1;i<=NF;i++){printf "%s\n", $i}}' <<<"${F_ABOUT_DISTRO_R}")
while read -r line; do
   SPLIT+=("$line")
done <<< "$SPLIT_NOW"
for i in "${SPLIT[@]}"; do
    echo "$i"
done

Почему этот подход «лучший» для меня?

По двум причинам:

  1. Вам не нужно экранировать разделитель;
  2. У вас не будет проблем с пробелами . Значение будет правильно разделено в массиве!

[] 's

6
задан Waseem 27 July 2009 в 04:06
поделиться

3 ответа

Я думаю, что Webrat - это больше, чем вам нужно. Для тестирования XML-канала вам не нужен симулятор браузера, такой как Webrat, который загружал бы страницы и анализировал всю разметку (ссылки, формы и т. Д.), Когда у вас действительно нет HTML-страниц.

Вам скорее понадобится что-то вроде Curl ( http://curl.haxx.se ) или Curb (на rubyforge, которые являются привязками Ruby для Curl) или Patron (на rubyforge).

Эти библиотеки могут создавать заголовки запроса как по своему вкусу (например, установка Content-Type, выбор между GET PUT POST DELETE HEAD и т. д.) и получение ответа и, вероятно, выполнение перенаправления 302, когда это необходимо.

Возвращенный ответ может быть затем преобразован в объект XML, и XML парсеры, доступные для Ruby, можно использовать для проверки вывода. Кроме того, вы можете написать классы XMLMapping (на rubyforge) для преобразования вывода XML в объекты Ruby и тестирования их атрибутов и т. Д. Это намного чище, IMHO.

7
ответ дан 8 December 2019 в 05:22
поделиться

После настройки маршрутов RESTful вы сможете использовать Webrat для посещения различных маршрутов. Затем вы можете проверить, что каждый маршрут возвращает XML, который соответствует вашим ожиданиям.

Вот сообщение в блоге, в котором описывается, как тестировать выходные данные XML в RSpec: Тестирование вывода XML

Webrat - это безголовый браузер, что просто означает, что вы можете имитировать браузер, не открывая настоящий браузер, такой как FireFox, на вашей машине разработки. Это означает, что вы можете просто ввести что-то вроде «visit 'users /'» в определенных шагах и смоделировать пользователя, обращающегося к вашему приложению.

Наконец, Прагматическая книга по RSpec (все еще находится в стадии бета-тестирования). отличный ресурс о том, как использовать Cucumber, Webrat и RSpec вместе и управлять разработкой приложений с помощью BDD.

2
ответ дан 8 December 2019 в 05:22
поделиться

Функция visit webrat принимает http_method в качестве второго параметра. Вы также можете протестировать свой API, как в следующем правиле огурца:

When /^I restfully delete (?:|the )user "([^\"]*)"$/ do |login|
  visit(path_to("user \"#{login}\" page"), :delete)
end
9
ответ дан 8 December 2019 в 05:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: