Ruby 如何循环RSpec中主题的属性?

Ruby 如何循环RSpec中主题的属性?,ruby,rspec,Ruby,Rspec,是否可以像这样循环使用subject属性: subject { assignment } its(:submissions).each do |submission| submission.grade should eq 100 end 我得到的错误是未定义每个类的方法… 我也试过了 subject { assignment } its(:submissions) do each do |submission| submission.grade should eq 100

是否可以像这样循环使用subject属性:

subject { assignment }

its(:submissions).each do |submission|
  submission.grade should eq 100
end
我得到的错误是
未定义每个类的方法…

我也试过了

subject { assignment }
its(:submissions) do
  each do |submission|
    submission.grade should eq 100
  end
end
得到

未定义的方法“each” RSpec::Core::ExampleGroup::Nested_4::Nested_4::Nested_1::Nested_1:0x00000005f91ac8


您可以在示例中使用
subject
方法获取主题。因此,您可以这样做:

subject { assignment }
it "has some number of submissions, each with a grade of 100" do
  subject.submissions.each { |submission| submission.grade.should eq 100 }
end
旁注:请改为使用

let(:assignment) { create :assignment } # or whatever is necessary to create the assignment
it "has some number of submissions, each with a grade of 100" do
  assignment.submissions.each { |submission| submission.grade.should eq 100 }
end