1

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"
4

1 に答える 1

0

SintrawithWebratについて投稿した最近の質問に答えました。

webratを使用したsinatraアプリの受け入れテストが失敗する

ここでの問題も同じだと思います。交換してみてください:

Capybara.app = Sinatra::Application

と:

Capybara.app = Kimsin

個人的には、WebratよりもCapybaraを選びます。

于 2012-06-16T20:31:40.657 に答える