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'
Rspecの問題について( https://github.com/rspec/rspec-Rails/issues/36 )
あなたは置くべきです
config.include Capybara::DSL
構成ブロック内のspec_helper.rb.
Capybara::RSpec
はCapybara::DSL
およびCapybara::RSpecMatchers
がrequests
からfeatures
に変更されました。
requests
ディレクトリの名前をfeatures
に変更した後、マッチャーとDSLメソッドを明示的に含めることなく再び利用できるようにしました。
次を参照してください commit
また、テストが/ spec/featuresディレクトリにあることを確認してください。 rspec-Rails and capybara 2. によると、RSpec要求仕様では、Capybara v2以降はデフォルトで使用できません。 「...カピバラを使用するテストを仕様/リクエストから仕様/機能に移動する」ことを提案します。
デフォルトでは、ファイルがspec/requests、spec/integrationにある場合、またはサンプルグループに_:type => :request
_がある場合、capybara DSLが自動的に含まれます。
ファイルはspec/homeにあるため、カピバラヘルパーは含まれていません。上記のパターンの1つに準拠するか、_include Capybara::DSL
_を追加することでもトリックを実行できます(セットアップされるbefore(:each)
の一部を複製する必要がある場合もあります)。
あなたが成功していない場合、
実際にRSpec.configureブロックからもこのコードを仕様ヘルパーの最後に追加します
module ::RSpec::Core
class ExampleGroup
include Capybara::DSL
include Capybara::RSpecMatchers
end
end