minitestとcapybaraを使用してsinatraアプリをテストしようとしていますが、fill_inやvisitなどのcapybara機能を使用したすべてのテストでいくつかのエラーが発生します。
test_indexは以下を提供します:
#の未定義のローカル変数またはメソッド `app'
test_create_userは以下を提供します:
無効な式:.//// form [@id ='register']
test_same_emailは以下を提供します:
css"#register"が見つかりません
test_loginは以下を提供します:
入力できません。ID、名前、またはラベルが「email」のテキストフィールド、テキストエリア、またはパスワードフィールドが見つかりません
何が間違っているのかについての提案はありますか?
test.rb
require "test/unit"
require "minitest/autorun"
require "capybara"
require "capybara/dsl"
require "rack/test"
require_relative "../lib/kimsin.rb"
ENV["RACK_ENV"] = "test"
class KimsinTests < Test::Unit::TestCase
include Rack::Test::Methods
include Capybara::DSL
Capybara.app = Sinatra::Application
def test_index
visit "/"
assert stuff..
end
def test_create_user
visit "/user/new"
within "//form#register" do
fill_in :username, :with => "first@company.com"
fill_in :password, :with => "abC123?*"
fill_in :confirm_password, :with => "abC123?*"
click_link "Register"
end
assert stuff..
end
end
私はWindows7、rvm -v 1.14.1(安定版)およびruby-v1.9.2p320でcygwin1.7.15-1を使用しています。
- - アップデート - -
最後に、Steveの提案を取り入れてテストを機能させました。
within "form#register" do
fill_in "email", :with => "first@company.com"
click_button "Register"
capybara_minitest_specを使用して応答をアサートします。
page.must_have_content "Password"
page.must_have_button "Register"