去年夏天用 Ruby、Rails 和 RSpec 做了一些工作后,我学会了TATFT。现在,如果不先编写测试,我就无法编写代码。
我明年要上C的编程课程,我想学习编写C测试驱动。用 C 做 TDD 是个好主意(甚至可能)吗?如果是这样,是否有任何与 C 兼容的良好测试框架?
去年夏天用 Ruby、Rails 和 RSpec 做了一些工作后,我学会了TATFT。现在,如果不先编写测试,我就无法编写代码。
我明年要上C的编程课程,我想学习编写C测试驱动。用 C 做 TDD 是个好主意(甚至可能)吗?如果是这样,是否有任何与 C 兼容的良好测试框架?
用 C 做 TDD 是个好主意(甚至可能)吗?
是的,与其他语言一样,这显然是一个好主意。然而,由于语言的程序性质,它带来了更多的困难。
静态函数很快就会成为障碍。这可以通过包含被测源文件或定义一个静态宏来解决,该宏仅在编译生产代码时表示静态 - 而不是单元测试
#if defined(UNIT_TEST)
#define STATIC
#else
#define STATIC static
#endif
如果是这样,是否有任何与 C 兼容的良好测试框架?
你可以从minunit开始。学习曲线是平坦的,因为它只有四个宏长。
编辑:有两个C 语言的 UT 框架列表,在其他答案中提到,我没有重复:一个在 Wikepedia 上,另一个在 xprogramming.com 上。
我们使用来自http://check.sourceforge.net/的“检查” ,它为测试套件和测试提供基本功能(类似于 junit),但相当轻量级。我喜欢的功能是,如果您的测试转储代码并认为它失败,它会处理。
另请注意,“检查”是基于“C”的框架,而不是“C++”框架。
有许多用于 C 的单元测试工具。 Wikipedia 的列表比我在此处组装的要好得多。
如果您实际上使用的是 C++ 编译器,但通过编译 .c 文件在“C”模式下使用它,那么任何 C++ 单元测试框架都可以正常工作。
在http://www.xprogramming.com/software.htm 查看xUnit 框架的原始列表
你当然可以用 C 语言进行单元测试(我愿意)。我使用的框架(用于 Windows 平台)是CunitWin32
以下是 c 的单元测试框架列表: http ://en.wikipedia.org/wiki/List_of_unit_testing_frameworks#C
好好享受!
所以一个合适的 C 程序员会告诉你,因为 C 是静态类型的,所以它会捕获你可能遇到的所有错误,因此你不需要单元测试框架。
它们充满了狗屎,但这就是像 C 这样的静态类型语言的论点。
我认为您可能应该采用 Adobe 对 Photoshop 所做的方法。用 C 编写一系列核心库,然后应用程序的所有粘合和真实逻辑都应该使用更高级别的语言。Photoshop 主要是用 Lua 编写的,但许多语言都适用于此。