Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.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 为方法编写规范的可能方法有哪些?_Ruby On Rails_Ruby_Rspec - Fatal编程技术网

Ruby on rails 为方法编写规范的可能方法有哪些?

Ruby on rails 为方法编写规范的可能方法有哪些?,ruby-on-rails,ruby,rspec,Ruby On Rails,Ruby,Rspec,在我的模型中有一个方法叫做平均值 def average_n=(average_n) @average_n = average_n end 我写rspec如下 its 'should be 8' do model.average_n=8.should==8 end 是否有其他可能的方法为该方法编写rspec?。如果是,请作为答案发布。您有setter方法(average\n=),因此您还需要getter方法: class MyModel < ActiveRe

在我的模型中有一个方法叫做平均值

  def average_n=(average_n)
     @average_n = average_n
  end
我写rspec如下

 its 'should be 8' do
   model.average_n=8.should==8
 end

是否有其他可能的方法为该方法编写rspec?。如果是,请作为答案发布。

您有setter方法(
average\n=
),因此您还需要getter方法:

class MyModel < ActiveRecord::Base
  def average_n
    @average_n
  end

  def average_n=(average_n)
    @average_n = average_n
  end
end
如果您确实需要为其编写规范:

describe '#average_n=' do
  let(:my_model) { MyModel.new }

  it 'sets average_n' do
    my_model.average_n = 8
    expect(my_model.average_n).to eq 8
  end
end

还有很多其他方法可以为这个方法编写规范吗?你想达到什么目标?你希望什么是不同的,为什么?您认为在如何编写规范中什么是重要的?上面的一个被客户拒绝了。所以我想用另一种方式写。再说一遍,为什么它被拒绝了?你认为这有什么问题需要解决?“给我另一条路”不是一个有用的问题,因为没有办法评估答案。“正确”是什么意思?如果解析器接受它,它是否正确?如果它像你期望的那样通过和失败,它是正确的吗?如果这能让你的客户满意,那对吗?我们无法判断什么是好的答案,所以您将得到的只是关于您真正询问的内容的假设和关于测试应该是什么样子的意见。您现有的规范实际上测试不多-它被解析为
average\n=(8.should==8)
describe '#average_n=' do
  let(:my_model) { MyModel.new }

  it 'sets average_n' do
    my_model.average_n = 8
    expect(my_model.average_n).to eq 8
  end
end