加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 19:26:06 所属栏目:百科 来源:网络整理
导读:我一直在写测试一段时间,我开始得到这些东西.但是我有一些关于测试覆盖面真正需要的问题.共识似乎很明确:更多的覆盖面总是更好.但是,从初学者的角度来看,我不知道这是否真的如此. 拿这个完全是香草控制器的行动,例如: def create @event = Event.new(param
我一直在写测试一段时间,我开始得到这些东西.但是我有一些关于测试覆盖面真正需要的问题.共识似乎很明确:更多的覆盖面总是更好.但是,从初学者的角度来看,我不知道这是否真的如此.

拿这个完全是香草控制器的行动,例如:

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这样的测试工作总是浪费时间,但我相信在那里会有一个以上的覆盖面,他们愿意反对我.

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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读