has_manyのクラスのインスタンスをRSpecで呼び出す
RailsでCompany
クラスがPastData
をhas_many
で持つ関係において
下記のようなコードを書いたのですが
describe Company do
describe "exmaple test" do
let(:company){ Company.create }
context "fooが10の時" do
let(:past_data){ company.past_data.build(foo: 10) }
it "barは20" do
expect(company.past_data_bar).to eq(20)
end
end
end
end
app/models/company.rb
def past_data_bar
past_data.bar
end
以下のように NoMethodError
になってしまいます。
NoMethodError:
undefined method `bar' for nil:NilClass
company.past_data
がnil
になっているのが原因なのはわかるのですが、解決方法がわかりませんでした。
company.past_data.bar
と呼び出していますが、実際のコードではCompany
クラスの内部メソッドでpast_data
を呼び出しています。
RSpecでhas_many
の関係にあるクラスを呼び出しているメソッドのテストはどのように書けば良いのでしょうか?