Ruby on rails 为rails 3中的集成测试方法提供帮助
我正在为我的rails 3.2.16应用程序准备一些集成测试,我想,在我的用户场景中,我有几个调用,我会在很多测试中重复,所以我想把它们放在一个单独的通用模块中,让它们干燥 例如,我创建了Ruby on rails 为rails 3中的集成测试方法提供帮助,ruby-on-rails,ruby,testing,integration-testing,Ruby On Rails,Ruby,Testing,Integration Testing,我正在为我的rails 3.2.16应用程序准备一些集成测试,我想,在我的用户场景中,我有几个调用,我会在很多测试中重复,所以我想把它们放在一个单独的通用模块中,让它们干燥 例如,我创建了/test/integration/my_test\u helpers.rb: require 'test_helper' module MyTestHelper def login_user(email, password, stay = 0) login_data = { ema
/test/integration/my_test\u helpers.rb
:
require 'test_helper'
module MyTestHelper
def login_user(email, password, stay = 0)
login_data = {
email: email,
password: password,
remember_me: stay
}
post "/users/sign_in", user: login_data
assert_redirected_to :user_root
end
end
并尝试在我的集成测试中使用它:
require 'test_helper'
require "./my_test_helpers.rb"
class CreateCommentTest < ActionDispatch::IntegrationTest
setup do
@user = users(:user1)
end
test "create comment" do
login_user @user.email, "password", 1
end
end
如何加载模块?将
MyTestHelpers
设置为模块是否正确?您应该将助手放入支持文件夹(test/support/my\u test\u helpers.rb
或其他内容),并在test\u helper.rb
中加载模块:
ENV["RAILS_ENV"] ||= "test"
require File.expand_path("../../config/environment", __FILE__)
require "rails/test_help"
require_relative "./support/my_test_helpers"
require "minitest/rails"
class ActiveSupport::TestCase
ActiveRecord::Migration.check_pending!
fixtures :all
# Add more helper methods to be used by all tests here...
end
不要记住包括您的模块:
require 'test_helper'
class CreateCommentTest < ActionDispatch::IntegrationTest
include MyTestHelper
setup do
@user = users(:user1)
end
test "create comment" do
login_user @user.email, "password", 1
end
end
需要“测试助手”
类CreateCommentTest
谢谢,现在好多了,不过我还有一个未定义的方法
login\u user's`
require 'test_helper'
class CreateCommentTest < ActionDispatch::IntegrationTest
include MyTestHelper
setup do
@user = users(:user1)
end
test "create comment" do
login_user @user.email, "password", 1
end
end