Тест основной единицы и C, как я начинаю?

Простым способом было бы использовать фреймворк PHP, такой как CodeIgniter или Laravel , которые имеют встроенные функции, такие как фильтрация и активная запись, так что вам не нужно беспокоиться об этих нюансах.

23
задан Community 23 May 2017 в 11:45
поделиться

3 ответа

Вы создали первый тестовый сценарий. Теперь Вам нужно к , создают набор тестов (группа тестовых сценариев) и бегун .

я рекомендовал бы попытаться скомпилировать их пример сначала для проверки среды, хотя их документация представляет новый код через разность (исходный патч), который я не нахожу очень удобными.

<час>

, Если когда-нибудь Вы решаете попробовать другой платформой ( minunit прибыл по моему мнению сразу), я могу указать на Вас на" учебное руководство ".

8
ответ дан philant 29 November 2019 в 03:04
поделиться

Я был бы более склонен пойти с Кунит , который является частью серии X-Unit сред тестирования.

Это масштабируемо к большим комплектам тестов и много лет использовалось, следовательно станьте зрелым.

Какая-либо причина, почему Вы не пошли с Кунитом?

аплодисменты HTH

,

Rob

5
ответ дан Rob Wells 29 November 2019 в 03:04
поделиться

Я использовал dejagnu в течение многих лет и люблю его.

я начал использовать его для встроенной разработки, потому что это поддерживает очень хорошо понятие, что машина, на которой Вы выполняете тестовую программу, может отличаться, чем машина, на которой Вы создаете тестовую программу. Последствие этого - то, что тестирование кода нескольких платформ также хорошо поддерживается. Не уверенный, если это важно. gcc testsuite использует его. Я использую его для настольной разработки также.

основная идея с dejagnu состоит в том, что Вы

  • копируете тестовую программу в "цель" (который для локального тестирования мог быть ~/tmp, каталог)
  • запускают материал печати тестовой программы
  • к консоли (который действует как вход к тестовой программе)
  • , анализируют вывод от тестовой программы и соответствуют ему тому, что Вы ожидаете
  • , решают, означает ли тот вывод передачу или сбой

, Как только у Вас есть тестовая программа и записанные сценарии тестирования, Вы заканчиваете тем, что делали что-то вроде этого:

$ runtest
                === foo Summary ===

# of expected passes            42
foo-test built Thu Jan 15 20:09:19 PST 2009
foo-test version 0.0.0.1
runtest completed at Sun Jan 18 08:29:13 2009

способ, которым я добираюсь там для тестирования библиотеки, названной нечто:

  • принимают источник и включают файлы для библиотеки, находятся в ~/src/foo
  • , создают каталог, названный записью ~/src/foo/testsuite
  • тестовая программа, названная нечто-test.c, которое имеет основное (), что
    • командная строка args
    • процессов - печатает подсказку и находится в обработке цикла, "управляет", где я определяю команду для тестирования каждой функции в моей библиотеке. Это - вид подобных командный процессор, но характерный для библиотеки. Для чего-то как my_pow я определил бы команду для взятия 2 args.
    • пишут dejagnu (который является другим слоем сверху, Ожидают (http://expect.nist.gov/, который является самостоятельно слоем сверху Tcl (http://www.tcl.tk/) функция, вызванная my_pow что:
      • берет два аргумента
      • , вычисляет, ожидаемый результат (в Tcl)
      • отправляет, "my_pow" к консоли
      • анализирует вывод команды my_pow от теста нечто
      • , определяет, соответствует ли фактический результат ожидаемому результату
      • , вызывает соответствующую dejagnu функцию (передача или сбой)
      • Звуки

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

До ссылок, существует одна книга по, Ожидают, что я сказал бы, требование для дайвинга в это: http://oreilly.com/catalog/9781565920903/index.html .
Между этим и ссылкой команды Tcl онлайн http://www.tcl.tk/man/tcl8.4/TclCmd/contents.htm и FAQ ( http://www.psg.com/~joem/tcl/faq.html ), Вы в значительной степени там.

Удача.

- DB

4
ответ дан Johan 29 November 2019 в 03:04
поделиться
Другие вопросы по тегам:

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