当前位置:  开发笔记 > 运维 > 正文

基本单元测试和C,我该如何开始?

如何解决《基本单元测试和C,我该如何开始?》经验,为你挑选了2个好方法。

在StackOverflow上阅读了相当多的一些主题之后,我得出结论,我应该采用某种形式的测试驱动开发/单元测试(或至少探索该领域).

而且,由于我们是在谈论Linux下的C代码,我决定放弃检查尝试(我不知道这是否是正确的选择,但如果它没有好我可以尝试别的以后的东西).

但是由于单元测试和单元测试框架的这个概念对我来说是全新的,我开始对一个非常小的测试代码进行一些单元测试(但我完全迷失了,感觉就像我错过了一些东西).

这是我到目前为止所做的,我创建了以下文件:

main.c,一个只调用一个名为my_pow的函数并打印结果的main.

my_pow.c,包含函数my_pow.

my_pow.h

my_pow_test.c,我想我应该在这里放置my_pow函数的单元代码.

(所以"普通程序"是main.c,my_pow.c和my_pow.h.)

这是my_pow.c


#include "my_pow.h"
int my_pow(int a, int b)
{
    return (a*b);
}

然后我想在my_pow_test.c中我放了这样的东西:


#include 
#include "my_pow.h"

START_TEST (test_my_pow)
{
    /* unit test code */
}
END_TEST

//do I need some sort off main here that calls test_my_pow?

这基本上与检查手册第3.1章中的相同,但仍然没有....

有人可以请我朝正确的方向努力吗?

谢谢约翰


更新:没有理由我尝试使用支票我只是觉得我应该从某个地方开始,也许CUnit是一个更好的选择(我想我也会尝试这个,然后做出有根据的选择).

更新:感谢@philippe间接指出在线文档只是事实的一半,澄清文档所述内容的示例代码已经与check包一起安装.在Ubuntu案例中/ usr/share/doc/check/example/tests /

更新:代码示例已创建,以便您通过查看他的第一个版本,然后是第二个版本等开始.这样您就可以了解他如何创建一个非常基本的测试用例/代码,从无到有用的东西传统的TTD方式.

而且由于我的代码被破坏了,我希望单元测试证明这一点,我作了一点欺骗并测试了真正的功能.像这样的东西:


START_TEST (test_my_pow1)
{
    int resultat = my_pow(3,3);
    int math     = pow(3,3);
    fail_unless ( resultat == math,
           "Error on 3^3 != %d (%d)",math, resultat);
}

但是将来我不会重现stdlibs中的内容:-)


有关:

单元测试C代码

如何测试C代码

C的单元测试框架

测试C的框架

基本单元测试和C,我该如何开始?

取自搜索[c] [unit-testing].



1> philant..:

您创建了第一个测试用例.现在您需要创建一个测试套件(一组测试用例)和一个跑步者.

我建议你首先尝试编译他们的例子以验证你的环境,虽然他们的文档通过diff(源补丁)介绍新的代码,我觉得这不是很方便.


如果您决定尝试使用另一个框架(我立刻想到了minunit),我可以指向一个" 教程 ".



2> Rob Wells..:

我更倾向于使用CUnit,它是X-Unit系列测试框架的一部分.

它可以扩展到大型测试套件,并且已经使用了很多年,因此已经成熟.

您没有使用CUnit的任何理由?

HTH

干杯,

推荐阅读
郑小蒜9299_941611_G
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有