我正在挖掘Capybara和rspec,从TDD迁移到BDD。
我的生成器制作了大量的目录和规范测试,
目录结构与此类似:
spec
controllers
models
requests
routing
views
我认为大多数是TDD而不是BDD。如果我看了here:
"一个很好的测试策略是广泛覆盖数据层 单元测试然后一直跳到验收测试。这种方法 提供了很好的代码覆盖率,并构建了一个可以用 改变代码库。"
然后我认为事情应该是完全不同的
以下内容:
spec
models
acceptance
基本上我将控制器,请求,视图和路由选择用于在Capybara,Rspec的验收目录中实现测试作为用户案例场景。
这对我来说很有意义,虽然我不确定这是否是标准/通用方法。
你的方法是什么?
谢谢, 朱利奥
答案 0 :(得分:1)
TL;博士 这不是标准方法。
如果您只测试模型和功能规格......那么您将错过中间的位。
你可以说:“方法X打破了Widget模型”或者你可以在创建小部件时告诉“有某些错误”,但你不知道其他任何事情。
如果出现问题,是控制器吗?路由?两者之间有什么交接?
很高兴:
不要忘记模型不是应用程序中唯一的类..所有类都需要进行某种测试。控制器也是类。形式和服务对象,邮件等等。
那就是说 - 通常认为视图测试过于频繁。我也不热衷于请求测试我自己的路由测试(除非我有一些复杂的东西,我想要正常工作,例如路线中有许多可选参数映射到有趣的搜索模式)