ruby-on-rails – 什么不测试在Rails?

前端之家收集整理的这篇文章主要介绍了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这样的测试工作总是浪费时间,但我相信在那里会有一个以上的覆盖面,他们愿意反对我.

对我来说,测试方法有三件事情:

他们保证不间断的旧功能如果我可以检查
没有什么新的,我放在已经破了
我的旧事通过运行测试,就是这样
一件好事
当我重写旧东西时,他们让我感到安全
重构很少是微不足道的
一.但是,如果我想重构
不平凡的代码,有测试
确保我的重构没有
破坏任何行为是必须的.
>他们是我的工作的文档不寻常的代码需要
记录.但是,如果您同意
与我在代码中的意见是
恶魔的工作,有明确的
简单的单元测试,使你
了解什么是正确的行为
某事是,(再)一个必须.

任何我确信我不会打破,或者我觉得不合格的文件,我根本不浪费时间测试.您生成的控制器和模型方法,那么,即使没有单元测试,我也会说这些都很好.

猜你在找的Ruby相关文章