web-dev-qa-db-ja.com

訪問方法が私のrspecに見つかりません

My Java WebアプリケーションはTomcatで http:// localhost:8080 /で実行されています

最初の仕様home_specを書く:

require 'spec_helper'


describe "home" do

    it "should render the home page" do
       visit "/"

       page.should have_content("hello world")
    end

end

実行中:

rspec

私は得る:

F

Failures:

  1) home should render the home page
     Failure/Error: visit "/"
     NoMethodError:
       undefined method `visit' for #<RSpec::Core::ExampleGroup::Nested_1:0x242870b7>
     # ./spec/home/home_spec.rb:7:in `(root)'

Finished in 0.012 seconds
1 example, 1 failure

Failed examples:

rspec ./spec/home/home_spec.rb:6 # home should render the home page

spec_helperにcapybaraを含めたので、これは動作しませんか?

正しいURLにアクセスすることはどのようにしてわかりますか? URLがlocalhost:3030またはlocalhost:8080の場合はどうなりますか?

私のgemfile:

source 'http://rubygems.org'

gem "activerecord"
gem "rspec"
gem "capybara"
gem "activerecord-jdbcmysql-adapter"

私のspec_helper:

require 'capybara/rspec'
52
Blankman

Rspecの問題について( https://github.com/rspec/rspec-Rails/issues/36

あなたは置くべきです

config.include Capybara::DSL

構成ブロック内のspec_helper.rb.

134
Erdem Gezer

Capybara::RSpecCapybara::DSLおよびCapybara::RSpecMatchersrequestsからfeaturesに変更されました。

requestsディレクトリの名前をfeaturesに変更した後、マッチャーとDSLメソッドを明示的に含めることなく再び利用できるようにしました。

次を参照してください commit

23
steve.clarke

また、テストが/ spec/featuresディレクトリにあることを確認してください。 rspec-Rails and capybara 2. によると、RSpec要求仕様では、Capybara v2以降はデフォルトで使用できません。 「...カピバラを使用するテストを仕様/リクエストから仕様/機能に移動する」ことを提案します。

9
shadowbrush

デフォルトでは、ファイルがspec/requests、spec/integrationにある場合、またはサンプルグループに_:type => :request_がある場合、capybara DSLが自動的に含まれます。

ファイルはspec/homeにあるため、カピバラヘルパーは含まれていません。上記のパターンの1つに準拠するか、_include Capybara::DSL_を追加することでもトリックを実行できます(セットアップされるbefore(:each)の一部を複製する必要がある場合もあります)。

6

最初にチェックアウトする

あなたが成功していない場合、

実際にRSpec.configureブロックからもこのコードを仕様ヘルパーの最後に追加します

module ::RSpec::Core
  class ExampleGroup
    include Capybara::DSL
    include Capybara::RSpecMatchers
  end
end
1
ndrx42