ruby-on-rails – 什么不测试在Rails?
我一直在写测试一段时间,我开始得到这些东西.但是我有一些关于测试覆盖面真正需要的问题.共识似乎很明确:更多的覆盖面总是更好.但是,从初学者的角度来看,我不知道这是否真的如此.
拿这个完全是香草控制器的行动,例如: def create @event = Event.new(params[:event]) if @event.save flash[:notice] = "Event successfully created." redirect_to events_path else render :action => 'new' end end 只是生成的脚手架.我们在这里没有什么不寻常的事情.为什么写这个操作的控制器测试很重要?毕竟,我们甚至没有写代码 – 发电机为我们做了工作.除非在rails中有一个bug,否则这段代码应该是正常的.似乎测试这个动作并不是完全不同于测试,比如说collection_select,我们不会这样做.此外,假设我们使用黄瓜,我们应该已经涵盖了基础知识(例如重定向在哪里). 对于简单的模型方法也可以这样说.例如: def full_name "#{first_name} #{last_name}" end 我们真的需要为这样简单的方法编写测试?如果有语法错误,您将在页面刷新时捕获它.同样,黄瓜会抓住这一点,只要你的功能打到任何一个称为full_name方法的页面.显然,我们不应该依靠黄瓜做任何太复杂的事情.但是,full_name是否真的需要单元测试? 你可能会说,因为代码很简单,测试也很简单.所以你也可以写一个测试,因为它只需要一分钟.但似乎写作基本上无价值的测试可以做更多的伤害比好.例如,它们混淆了您的规格,使得更难专注于实际重要的复杂测试.此外,他们需要时间运行(尽管可能不太多). 但是,就像我说的,我几乎不是专家测试员.我不一定主张减少测试覆盖.相反,我正在寻找一些专家建议.有没有真正的理由来写这样简单的测试? 解决方法
我在这方面的经验是,不要浪费你的时间编写测试代码,这是微不足道的,除非你有很多复杂的东西骑在正确的琐事.我认为,像getter和setter这样的测试工作总是浪费时间,但我相信在那里会有一个以上的覆盖面,他们愿意反对我.
对我来说,测试方法有三件事情: 他们保证不间断的旧功能如果我可以检查 任何我确信我不会打破,或者我觉得不合格的文件,我根本不浪费时间测试.您生成的控制器和模型方法,那么,即使没有单元测试,我也会说这些都很好. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |