Railsバージョン3.2.12を使用していますが、統合テストに問題があります(ユニットテストと機能テストは完全に機能しています)。
次のコマンドを使用して統合テストを作成しました。
rails generate integration_test user_stories
次に、「user_stories_test.rb」ファイルに次のようにデータを入力しました。
require 'test_helper'
class UserStoriesTest < ActionDispatch::IntegrationTest
LineItem.delete_all
Order.delete_all
ruby_book = product(:ruby)
get "/"
assert_response :success
assert_template "index"
xml_http_request :post, '/line_items', product_id: ruby_book.id
assert_response :success
cart = Cart.find(session[:cart_id])
assert_equal 1, cart.line_items.size
assert_equal ruby_book, cart.line_items[0].product
get "/orders/new"
assert_response :success
assert_template "new"
post_via_redirect "/orders",
order: { name: "Dave Thomas",
address: "123 The Street",
email: "dave@example.com",
pay_type: "Check" }
assert_response :success
assert_template "index"
cart = Cart.find(session[:cart_id])
assert_equal 0, cart.line_items.size
orders = Order.all
assert_equal 1, orders.size
order = orders[0]
assert_equal "Dave Thomas", order.name
assert_equal "123 The Street", order.address
assert_equal "dave@example.com", order.email
assert_equal "Check", order.pay_type
assert_equal 1, order.line_items.size
line_item = order.line_items[0]
assert_equal ruby_book, line_item.product
mail = ActionMailer::Base.deliveries.last
assert_equal ["dave@example.com"], mail.to
assert_equal 'Sam Ruby <depot@example.com>', mail[:from].value
assert_equal "Pragmatic Store Order Confirmation", mail.subject
end
そして、それは私の「test_helber.rb」ファイルがどのように見えるかです:
ENV["RAILS_ENV"] = "test"
require File.expand_path('../../config/environment', __FILE__)
require 'rails/test_help'
class ActiveSupport::TestCase
fixtures :all
end
まず、フィクスチャがロードされていませんでした。次の手順に従ってこれを修正できなかったため、次のように手動でテストデータの作成を終了しました。
#ruby_book = product(:ruby)
ruby_book = Product.new
ruby_book.title = 'Programming Ruby 2.0'
ruby_book.price = 49.50
ruby_book.image_url = 'ruby.png'
ruby_book.description = 'description'
ruby_book.save!
これにより、フィクスチャのロードに関する問題が解決され、「get」メソッドで「methodundefined」エラーが発生します。さらに、すべての「get」メソッドにコメントを付けた後、次のメソッド「xml_http_request」でも同じエラーが発生します。
私が間違っていることは何ですか?レールがこれらのメソッドを見つけられないのはなぜですか?