TDD

什么是TDD?

TDD是测试驱动开发(Test-Driven Development)的英文简称

TDD原则

以下几个TDD原则,可以简单的构建TDD在脑海中的架构,这次实验我准备使用TDD并以golang为语言编写一个简单的冒泡排序算法。后续的编写也会根据以下原则出发。

  1. 独立测试
    不同代码块之间需相互独立,且有自己的测试
  2. 测试列表
    每新添加一个功能,都需将代码测试加入测试列表
  3. 测试驱动
    由新增的测试来引导代码的发展,新加功能时,需先编写测试代码
  4. 及时重构
    发现代码冗余时,及时对代码进行重构,保持代码的整洁

术语

  1. 测试
    透过实验方法进行数据处理得到结果相关的信息
  2. 基准测试
    将测试的某属性作为基准,与某一基准测试做比较 (类似跑分)
  3. 重构
    重新编写代码,将代码的整洁、易读、架构设计集体提高

测试

由于虚拟机跑测试代码有点卡,我重新在windows弄了golang环境,以下测试都是在windows下弄的
首先是按照文檔的hello world及测试
服务计算作业2-golang冒泡排序TDD
下部份是迭代

TDD,从构建测试开始

服务计算作业2-golang冒泡排序TDD先写出测试代码,随后再编写代码,这是TDD中的测试驱动

完善函数

服务计算作业2-golang冒泡排序TDD
编写了可以通过测试的函数

基准测试

服务计算作业2-golang冒泡排序TDD

服务计算作业2-golang冒泡排序TDD
按照文檔标准写了基准测试,并进行了跑分,得到此函数大约需要191ns来完成

练习

修改测试代码,以便调用者可以指定字符重复的次数,然后修复代码

服务计算作业2-golang冒泡排序TDD
服务计算作业2-golang冒泡排序TDD

写一个 ExampleRepeat 来完善你的函数文档

服务计算作业2-golang冒泡排序TDD

Go语言冒泡算法实现TDD实践报告

测试驱动

服务计算作业2-golang冒泡排序TDD

由于编了一个tostring函数,所以在上面也写了个tostring测试,即「测试列表」

随后让编译能够通过,我这里顺手把toString写了
服务计算作业2-golang冒泡排序TDD

完善函数

服务计算作业2-golang冒泡排序TDD
随后跑测试通过
服务计算作业2-golang冒泡排序TDD

基准测试

服务计算作业2-golang冒泡排序TDD
服务计算作业2-golang冒泡排序TDD

检查了下,没有希望重构的部份,这次冒泡排序就完成了

总结

这次主要在简单熟悉golang的语法,还有TDD这个由测试带动的编码方法

相关文章: