2

私はMichealHartlのRubyonRailsチュートリアル2.3Editionをフォローしており、統合テストの手順を正しく実行しました。/ sample_app / spec/integrationlayout_links_spec.rbという名前のファイルがあります。これは次のようになります。

require 'spec_helper'
describe "Layout links" do
 it "should have a Home page at '/'" do
  get '/'
   response.should render_template('pages/home')
  end
 end

私がする時

$ spec spec/

次のエラーが発生します

1)
NoMethodError in 'Layout links should have a Home page at '/''
undefined method `merge' for nil:NilClass
 /home/rails_projects/sample_app/spec/integration/layout_links_spec.rb:4:

Finished in 0.060225 seconds

1 example, 1 failure

このエラーで私を助けてください

4

1 に答える 1

1

この質問に基づくと、あなたは彼のチュートリアルの第1版をフォローしているように見えます。もしそうなら、彼が統合テストを生成するために使用したコマンドは、178ページのセクション5.2.1にあります。

rails generate integration_test layout_links

結果はspec/requests/layout_links_spec.rbの下のファイルです


彼のアプリのソースコードを閲覧する場合、spec/integrationフォルダーはありません。ここを見て、これが役立つかどうかを確認してください。そう願っています。

PS:彼は、「RSpecでは、統合テストは要求仕様とも呼ばれます。この用語の由来は私にはわかりません」とコメントしています。

RSpecのドキュメントで、私はこれを見つけました。リクエストスペックは、Railsの統合テストの薄いラッパーを提供し、ルーティング(Railsによって提供される)やスタブなし(それはあなた次第)を含むフルスタックを通じて動作を駆動するように設計されています。

于 2012-10-29T03:22:04.403 に答える