下面用一个简单示例,展示ETDD一般过程,使用的工具是Visual Unit。我们要编写一个函数,其功能是删除字符串左边空格。
步骤一,编写函数框架,能通过编译就行:
char* strtrml(char *str)
{
return str;
}
步骤二,明确代码的最基本功能,就是确定程序最普通的输入是什么,应该产生什么输出。下图是填写最普通输入输出的界面,这也是第一个用例,填写完成后,工具就可以生成测试代码,并且将数据移到表格中。
步骤三,进一步明确代码功能,就是确定代码的各个功能点,把想到的输入分类都列出来,并且指定对应的正确输出。下图是生成数据的界面和数据表格。
步骤四,编写代码。ETDD促进开发的最主要效益在于程序行为可视。编写几行代码、就可以查看程序行为,然后修改错误、继续编写,直到测试全部通过。
假设编写strtrml()的思路是:首先计算左边空格的数量,然后再把字符串朝左边移动。先编写计算左边空格数量的代码(粗体且带下划线的为新增代码):
char* strtrml(char *str)
{
int count = 0; //左边空格数量
while(*str++ == ' ')
count++;