Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails在模型中测试小方法是好的还是坏的做法?_Ruby On Rails_Rspec_Rspec Rails - Fatal编程技术网

Ruby on rails Rails在模型中测试小方法是好的还是坏的做法?

Ruby on rails Rails在模型中测试小方法是好的还是坏的做法?,ruby-on-rails,rspec,rspec-rails,Ruby On Rails,Rspec,Rspec Rails,我有一个模型: class Answer < ActiveRecord::Base def pending_edits self.edits.where(:is_approved => nil) end def update_body (new_body) update_attributes :old_body => self.body, :body => new_body end def current_accepted_ed

我有一个模型:

 class Answer < ActiveRecord::Base

  def pending_edits
    self.edits.where(:is_approved => nil)
  end

  def update_body (new_body)
    update_attributes :old_body => self.body, :body => new_body
  end

  def current_accepted_edit
    edits.find_by(:is_current => true)
  end

您应该测试所有公共方法,而不考虑大小。因此,如果可以从类外部调用该方法,那么您可以对其进行测试。也就是说,如果私有/受保护方法被用作公共api方法的组合,则不要测试它们。编辑回应你的编辑:我愿意

it "returns pending edits" do
end

您应该测试所有公共方法,而不考虑大小。因此,如果可以从类外部调用该方法,那么您可以对其进行测试。也就是说,如果私有/受保护方法被用作公共api方法的组合,则不要测试它们。编辑回应你的编辑:我愿意

it "returns pending edits" do
end

这要看情况而定,你认为这个非常小的规范会为你的测试套件增加一些有用的东西吗?如果答案是肯定的:去做,如果答案是否定的:不要去做,如果你不能决定:不管怎样,如果你不确定拥有它比不拥有它更好这真的取决于你,你认为这个非常小的规范会给你的测试套件增加一些有用的东西吗?如果答案是肯定的:做吧,如果答案是否定的:不要做,如果你不能决定:无论如何,如果你不确定拥有它比不拥有它更好,那么就去做吧