[c] C 언어 테스트 케이스 작성

C 언어로 테스트 케이스를 작성하는 방법에 대해 알아보겠습니다.

1. 단위 테스트 라이브러리 선택

C 언어의 경우에는 여러 단위 테스트 라이브러리가 있지만, 여기서는 Check를 사용해보겠습니다.

2. 테스트 케이스 작성

#include <check.h>

START_TEST(test_example)
{
    ck_assert_int_eq(1, 1);
}
END_TEST

위의 코드는 “test_example”이라는 단위 테스트 케이스를 작성한 예시입니다. START_TESTEND_TEST 사이에 테스트 로직을 작성하고, ck_assert_ 매크로를 사용하여 테스트를 수행합니다.

3. 테스트 스위트 작성

#include <check.h>

Suite *test_suite(void)
{
    Suite *s;
    TCase *tc_core;

    s = suite_create("Example");
    tc_core = tcase_create("Core");

    tcase_add_test(tc_core, test_example);
    suite_add_tcase(s, tc_core);

    return s;
}

위의 코드는 테스트 스위트를 작성하는 예시입니다. suite_create 함수로 스위트를 생성하고, tcase_create 함수로 테스트 케이스 안에 테스트를 추가합니다.

4. 메인 함수 작성

#include <check.h>

int main(void)
{
    Suite *s;
    SRunner *sr;
    int number_failed;

    s = test_suite();
    sr = srunner_create(s);

    srunner_run_all(sr, CK_NORMAL);
    number_failed = srunner_ntests_failed(sr);
    srunner_free(sr);

    return (number_failed == 0) ? 0 : 1;
}

위의 코드는 메인 함수를 작성하는 예시입니다. srunner_run_all 함수로 모든 테스트를 실행하고, 결과에 따라 0 또는 1을 반환합니다.

C 언어로 테스트 케이스를 작성하는 방법에 대해 간략히 살펴보았습니다. Check 라이브러리 외에도 여러 다른 라이브러리가 있으니 상황에 맞게 선택하여 사용하시면 됩니다.