如何对C进行单元测试(借助代码块)?

时间:2011-12-03 23:24:08

标签: c unit-testing codeblocks

我有一个单元测试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 个答案:

答案 0 :(得分:1)

是的,我们也使用Check来对我们的C项目进行单元测试,不需要集成到IDE中,将测试结果显示为纯文本会更友好。

但是有一个C ++单元测试框架可以与代码块IDE结合使用: Unit testing for Code Block

答案 1 :(得分:0)

不了解代码块,但您可能想使用check.h并遵循本教程: http://check.sourceforge.net/doc/check_html/check_3.html。 用它编写测试套件非常简单。我了解了它看gstreamer编辑服务,你可能想看看他们的测试套件: http://cgit.freedesktop.org/gstreamer/gst-editing-services/tree/tests/check/ges 他们重新实现了它,但它的工作方式基本相同。

答案 2 :(得分:0)

C问题中所有单元测试的祖父都在这里:

Unit Testing C Code

同样,不是特定于代码块,但大多数策略都是标准C。