【发布时间】:2021-01-22 22:22:50
【问题描述】:
我不明白为什么TDD FIRST principle 没有在以下代码中得到遵守。
这些是我对 FIRST 原则的注释:
- 快速:快速运行(子集)测试(因为您将一直运行它们)
- 独立:没有测试依赖于其他测试,因此可以按任何顺序运行任何子集
- 可重复:运行 N 次,得到相同的结果(帮助隔离错误并实现自动化)
- 自检:测试可以自动检测是否通过(无需人工检查输出)
- 及时:与被测代码几乎同时编写(使用 TDD,先编写!)
测验问题:
Sally 希望她的网站在每个月的第一个星期二有一个特殊的布局。她有以下控制器和测试代码:
# HomeController def index if Time.now.tuesday? render 'special_index' else render 'index' end end # HomeControllerSpec it "should render special template on Tuesdays" do get 'index' if Time.now.tuesday? response.should render_template('special_index') else response.should render_template('index') end end什么 FIRST 原则没有被遵循?
- 快速
- 独立
- 可重复
- 自检
- 及时
我不确定哪个 FIRST 原则没有得到遵守:
- 快速:代码似乎很快,因为它的测试并不复杂。
- 独立:测试不依赖于其他测试。
-
可重复:测试每次都会得到相同的结果。
'special_index'如果是星期二,'index'如果不是星期二。 - 自检:测试可以自动检测是否通过。
- 及时:代码和测试代码同时呈现在这里。
我在测验中选择了及时,因为测试代码是在控制器代码之后呈现的。但我问错了问题,回想起来,这不是一个好的选择。我不确定这里没有遵循哪个 FIRST 原则。
【问题讨论】:
标签: tdd