一般来讲,单元测试的代码量是业务逻辑的3倍,针对每一个业务逻辑要写3个测试:
- YES 逻辑断言
- FALSE 逻辑断言
- 异常出错逻辑断言(ERROR)
单元测试需覆盖所有的业务逻辑。
单元测试代码范式如下:
# 初始化测试环境
before :all do
# 使用测试密钥(AccessKey/SecretKey)接入
establish_connection
# 创建测试Bucket
mk_unique_test_bucket
end
# 测试指定功能点
context :some_feature do
# YES逻辑断言
it "should be YES" do
# do some thing
end
# FALSE逻辑断言
it "should be FALSE" do
# do some thing
end
# 异常出错逻辑断言
it "should be raise ERROR" do
# do some thing
end
end
context :yet_another_feature do
# ...
end
# 清场
after :all do
# 删除之前测试用所创建的临时 Bucket
drop_unique_test_bucket
# 删除测试过程中所创建的临时文件
clean_tmpfile
end
使用 Travis-CI 作为 SDK 的自动化测试工具。
在 <SDK>.git
代码库根目录下添加 .travis.yml
文件,接入参考:http://about.travis-ci.org/docs/
缺省每个 <SDK>.git
代码库会接入 Travis-CI, 开发人员可以根据实际需要更改 .travis.yml
文件里边的配置项。
自动化测试流程参考如下图示:
接入 Travis-CI 后,开发者向 <SDK>.git
代码主库提交 Pull Request 时,会触发 Travis-CI 自动跑 SDK 单元测试并汇报测试结果。如下示例: