Как выполнить модульный тест C (с помощью блоков кода)? - PullRequest
4 голосов
/ 04 декабря 2011

У меня есть задача модульного тестирования C проекта для домашнего задания.Это написано в кодовых блоках.Вот один пример из кода:

void ServerUserWrite(int Command)  //Command "1" prints an extra row into server. For example addinga new user. it expects that the extra row with the correct data is already existing in the structure.
{
        FILE *UserDataBase;
        int i,j;
        UserDataBase=fopen(UserDatabasePath,"w");
        if(Command==1)
        {ServerUserCount=ServerUserCount+1;}
        fprintf(UserDataBase,"%d\n",ServerUserCount);
        if(ServerUserCount>0)
        {
                for(i=0;i<ServerUserCount;i++)
                {
                        fprintf(UserDataBase,"%d ",UserDB[i].UserID);
                        fprintf(UserDataBase,"%s ",UserDB[i].User);
                        fprintf(UserDataBase,"%d ",UserDB[i].UserPasswordLength);
                        fprintf(UserDataBase,"%d ",UserDB[i].Encrypter);
                        for (j=0;j<UserDB[i].UserPasswordLength;j++)
                        {fprintf(UserDataBase,"%d ",UserDB[i].Pass[j]);}
                        fprintf(UserDataBase,"%d ",UserDB[i].BackgroundColor);
                        fprintf(UserDataBase,"%d ",UserDB[i].ForegroundColor);
                        fprintf(UserDataBase,"%d ",UserDB[i].UnreadMessages);
                        fprintf(UserDataBase,"%d\n",UserDB[i].UnreadTweets);
                }
        }
        fclose(UserDataBase);
}

Ну, вопрос в том: существует ли какая-либо инфраструктура модульного тестирования для объединения с кодовыми блоками?И как это сделать?

Ответы [ 3 ]

1 голос
/ 04 декабря 2011

Да, мы используем Check для модульного тестирования нашего C-проекта, нет необходимости интегрироваться в IDE, удобнее отображать результаты тестирования в виде простого текста.

Но есть структура дляМодульное тестирование C ++, которое может сочетаться с IDE блока кода: Модульное тестирование для блока кода

0 голосов
/ 04 декабря 2011

Дедушка всех юнит-тестов в вопросах C находится здесь:

Юнит-тестирование кода C

Опять же, не относится к блокам кода, но большинствоиз стратегий являются стандартными C.

0 голосов
/ 04 декабря 2011

Не знаю о блоках кода, но вы можете использовать check.h и следовать этому руководству: http://check.sourceforge.net/doc/check_html/check_3.html. Написание тестовых наборов с ним довольно просто. Я узнал об этом, глядя на gstreamer-edit-services, возможно, вы захотите взглянуть на их набор тестов: http://cgit.freedesktop.org/gstreamer/gst-editing-services/tree/tests/check/ges Они переопределили это, но способ, которым это работает, в основном тот же самый.

...