5

rspecテスト用のサンプルアプリケーションを作成しており、Gemfileで次の手順を実行し ました

gem "rspec-rails", :group => [:test, :development]
group :test do
  gem "factory_girl_rails"
  gem "capybara"
  gem "guard-rspec"
end

次に、以下の手順を実行します。

  1. バンドル。
  2. rails g rspec:install。
  3. mkdir仕様/サポート仕様/モデル仕様/ルーティング。

spec_helperファイルに「requirecapybara/rspec」を追加しました

以下のようにサンプルテストを作成しました。

require 'spec_helper'
describe "Users" do
  describe " List users" do
    it "List all users" do
      get users_path
      page.has_content?('List Users')
    end
  end
end

しかし、それは機能せず、以下のエラーが発生します


undefined local variable or method `page' 

*カピバラが適切に構成されていなかったと思われます。カピバラを構成する適切な方法を教えてください。

4

4 に答える 4

9

GemfileでCapybaraのバージョンを指定しなかったので、バージョンがあると思います。>= 2.0つまり、使用するテストはすべてspec/featuresディレクトリに配置するpage必要があります。

詳細については、次のリンクを参照してください。

spec / featuresディレクトリを使用したくない場合はfeature、次の方法でテストをとしてマークできるはずです。

require 'spec_helper'
describe "Users" do
  describe " List users", type: :feature do
    it "List all users" do
      get users_path
      page.has_content?('List Users')
    end
  end
end
于 2012-12-25T12:51:59.023 に答える
5

スペックヘルパーにカピバラdslを含めた後に動作しました

config.include Capybara::DSL
于 2012-12-25T06:54:53.490 に答える
0

統合テスト用に新しい Capybara DSL をチェックする価値があります (features ディレクトリに注意してください)。

# spec/features/user_list_spec.rb
require 'spec_helper'

feature 'User list' do
  scenario 'List all users' do
    visit users_path
    expect(page).to have_content 'List Users'
  end
end

RSpec 統合テストと RSpec 2.0 の期待構文を使用した Capybara を使用したエンド ツー エンド テストと、Capybara DSL for feature/scenarios.

于 2013-03-06T01:21:31.590 に答える