在去年夏天与Ruby,Rails和RSpec合作之后,我学会了TATFT.现在我不能在没有先编写测试的情况下编写代码.
我明年将参加C语言的编程课程,我想学习编写C测试驱动.使用C进行TDD是一个好主意(甚至可能)吗?如果是这样,有没有与C兼容的良好测试框架?
使用C进行TDD是一个好主意(甚至可能)吗?
是的,与其他语言一样,这显然是一个好主意.但是,由于语言的程序性,它带来了一些更多的困难.
静态功能很快就会受阻.这可以通过包含测试中的源文件,或者在编译生产代码时定义仅表示静态的STATIC宏来解决 - 而不是单元测试
#if defined(UNIT_TEST) #define STATIC #else #define STATIC static #endif
没有孤立:只有一个全局背景.使用OO语言,您可以实例化一个对象(或一组协作对象)来测试它们(它们),您也可以使用模拟对象.但是,使用C,您可以通过在单元测试中重新定义函数来覆盖函数.这在类似Unix的系统上工作正常,链接器调用他发现的第一个函数 - 我不确定在Windows上.
如果是这样,有没有与C兼容的良好测试框架?
你可以从minunit开始.学习曲线是平坦的,因为它只有四个宏长.
编辑:有两个用于C语言的UT框架列表,在其他答案中提到,我没有重复:一个在Wikepedia上,另一个在xprogramming.com上.