Сценарии удара Поблочного тестирования

Хотя мне нравится ответ Justin, я чувствую, что он более точно представляет фильтр, а не поиск. Что, если я хочу знать об автомобилях с именами, которые запускаются с бегунка?

способ, которым я вижу его, Вы могли встроить его в способ, которым Вы обрабатываете определенные ресурсы:
/cars/cam*

Или, Вы могли просто добавить его в фильтр:
/cars/doors/4/name/cam*/colors/red, синий, зеленый

Лично, я предпочитаю последнего, однако я ни в коем случае не эксперт по REST (сначала услышавшему о нем только приблизительно 2 недели назад...)

101
задан Eric Leschinski 7 December 2013 в 21:07
поделиться

4 ответа

Я получил следующий ответ от группы обсуждения:

можно импортировать (включить, что угодно) процедура (функция, как бы это ни называлось) от внешнего файл. Это ключ к написанию сценарий тестирования: вы разбиваете свой сценарий в независимые процедуры которые затем можно импортировать в оба ваш запущенный скрипт и ваше тестирование скрипт, а затем у вас есть сценарий должен быть как можно более простым.

Этот метод похож на внедрение зависимостей для сценариев и звучит разумно. Предпочтительно избегать сценариев bash и использовать более проверяемый и менее непонятный язык.

29
ответ дан 24 November 2019 в 04:44
поделиться

There is actually a shunit2, an xUnit based unit test framework for Bourne based shell scripts. I haven't used it myself, but it might be worth checking out.

Similar questions have been asked before:

45
ответ дан 24 November 2019 в 04:44
поделиться

I have found it hard to justify using bash for larger scripts when Python has such huge advantages:

  • Try/Except allows writing more robust scripts with the ability to undo changes in case of an error.
  • You don't have to use obscure syntax such as 'if [ x"$foo" = x"$bar"]; then ...' which is prone to errors.
  • Easy parsing of options and arguments using the getopt module (and there's an even easier module for parsing arguments, but the name escapes me).
  • Python allows you to work with lists/dicts and objects instead of basic strings and arrays.
  • Access to proper language tools such as regex, databases (sure you could pipe everything into the mysql command in bash, but it's not the nicest way to write code).
  • No need to worry about using the correct form of $* or "$*" or "$@" or $1 or "$1", spaces in filenames isn't an issue, etc, etc, etc.

Now I only use bash for the simplest of scripts.

-2
ответ дан 24 November 2019 в 04:44
поделиться

Why do you say that it's "hard" to test bash scripts?

What's wrong with test wrappers like:

 #!/bin/bash
 set -e
 errors=0
 results=$($script_under_test $args<<ENDTSTDATA
 # inputs
 # go
 # here
 #
 ENDTSTDATA
 )
 [ "$?" -ne 0 ] || {
     echo "Test returned error code $?" 2>&1
     let errors+=1
     }

 echo "$results" | grep -q $expected1 || {
      echo "Test Failed.  Expected $expected1"
      let errors+=1
 }
 # and so on, et cetera, ad infinitum, ad nauseum
 [ "$errors" -gt 0 ] && {
      echo "There were $errors errors found"
      exit 1
 }
6
ответ дан 24 November 2019 в 04:44
поделиться
Другие вопросы по тегам:

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