Interested Article - Check (библиотека модульного тестирования)

Check — библиотека модульного тестирования в стиле xUnit для программ, написанных на языке Си . Распространяется с открытыми исходными тестами под свободной лицензией. Основной философией проекта является покрытие всех возможностей системы тестирования модульными тестами. Поддерживает запуск тестов в отдельных процессах (через системный вызов fork() в ОС Linux ) для возможности определения некорректного завершения тестов (например, по ошибке сегментирования).

Пример программы тестирования

Для того, чтобы написать программу тестирования, необходимо подключить заголовочный файл библиотеки check.h , написать функции тестирования, распределить их по группам, а группы распределить по тестовым наборам. После проведения тестирования можно получить количество тестов, которые оказались неудачными.

#include <stdlib.h>
// Подключаем заголовочный файл библиотеки.
#include <check.h>

// Функция тестирования какой-либо задачи.
START_TEST(test_name)
{
  /* Исходный код теста. */
}
END_TEST

// Функция создания набора тестов.
Suite *example_suite_create(void)
{
    Suite *suite = suite_create("Example");
    // Набор разбивается на группы тестов, разделённых по каким-либо критериям.
    TCase *tcase_core = tcase_create("Core of example");
    
    // Добавление теста в группу тестов.
    tcase_add_test(tcase_core, test_name);
    
    // Добавление теста в тестовый набор.
    suite_add_tcase(suite, tcase_core);
    
    return suite;
}

int main(void)
{
    Suite *suite = example_suite_create();
    SRunner *suite_runner = srunner_create(suite);
    
    srunner_run_all(suite_runner, CK_NORMAL);
    // Получаем количество проваленных тестов.
    failed_count = srunner_ntests_failed(suite_runner);
    srunner_free(suite_runner);
    
    if (failed_count != 0) {
        // Сигнализируем о том, что тестирование прошло неудачно.
        return EXIT_FAILURE;
    }

    return EXIT_SUCCESS;
}

См. также

Примечания

  1. . libcheck.github.io. Дата обращения: 13 ноября 2016. 19 мая 2016 года.

Ссылки

  • (англ.)
Источник —

Same as Check (библиотека модульного тестирования)