Ruby编程中的测试与重构指南
1. 测试代码以确保其正常工作
在测试代码时,可使用枚举定义多个测试方法,以减少测试方法的重复,并保持代码局部性。示例代码如下:
describe Foo do
{bar: Bar, baz: Baz, quux: Quux}.each do |meth, klass|
it "should have #{meth} return a #{klass} instance" do
_(Foo.new.send(meth)).must_be_kind_of(klass)
end
end
end
若测试规范中出现失败,测试库会报告失败的行,便于确定实际未按预期工作的部分,减少调试时间。
2. 理解不同层次的测试
Ruby 中有多种层次的测试,具体如下表所示:
| 测试层次 | 说明 |
| ---- | ---- |
| 单元测试 | 测试库中尽可能小的代码,如单个类中的单个方法,需模拟或存根方法的所有依赖。 |
| 模型测试 | 比单元测试层次高,测试对象的单个方法,但不模拟或存根方法的依赖。 |
| 集成测试 | 测试系统的所有部分能否协同工作,不进行任何模拟或存根,通常通过访问系统的最高部分获取预期结果。 |
| 验收测试 | 最高层次的测试,可自动化或手动进行。对于 Web 应用,手动验收测试可在浏览器中使用开发版本的应用并尝试不同功能;自动化验收测试则通过运行实际浏览器并以编程方式控制来模拟此过程。 |
单元测试
超级会员免费看
订阅专栏 解锁全文
444

被折叠的 条评论
为什么被折叠?



