Serviceを読んで理解し、同意したものとみなします。NoMethodErrorになってしまいます。nil:NilClasscompany.past_dataがnilになっているのが原因なのはわかるのですが、解決方法がわかりませんでした。company.past_data.barと呼び出していますが、実際のコードではCompanyクラスの内部メソッドでpast_dataを呼び出しています。票3company.past_dataにすると、letで宣言したオブジェクトが呼ばれないので、expectの中はpast_dataだけにしてみてください。endendEDIT:コメントの内容を勘案するとこうなりそうです。endendletだとbeforeやitの中でpast_dataが呼び出されるまでletのブロックは実行されません。let!にすると、テストの実行前に必ずブロックが呼び出されるようになります。詳しくはこの記事を読んでみてください。個の銅バッジ回答有難うございます。past_dataはCompanyクラスの内部で呼ばれているため、Companyのインスタンスにpast_dataのインスタンスをひもづける必要があるんです。コード部分に反映させていませんでしたので質問を修正しておきます。