gpt4 book ai didi

ruby-on-rails - RSpec - Capybara 和 Puma - 路由错误

转载 作者:行者123 更新时间:2023-12-05 04:06:02 27 4
gpt4 key购买 nike

我正在尝试将 Capybara 用作前端测试套件 (Vue),但我从 Puma 收到以下错误:

Failure/Error: raise ActionController::RoutingError, "No route matches [#{env['REQUEST_METHOD']}] #{env['PATH_INFO'].inspect}"

ActionController::RoutingError:
No route matches [GET] "/login"

这是什么原因造成的,我该如何解决?跟配置有关系吗?让我知道我是否应该在我的问题中包含更多代码。

rails_helper.rb:

ENV['RAILS_ENV'] ||= 'test'

require File.expand_path('../../config/environment', __FILE__)

abort("The Rails environment is running in production mode!") if Rails.env.production?

require 'spec_helper'
require 'rspec/rails'
require "pundit/rspec"
require "capybara/rails"
require "capybara/rspec"
require "capybara/poltergeist"
require 'database_cleaner'
require 'factory_girl'
require 'shoulda/matchers'
require "paperclip/matchers"
require 'support/spec_helpers/warden_controller_helpers'
require 'webmock/rspec'
require 'support/spec_helpers/webmock_helper'


Capybara.javascript_driver = :poltergeist

登录规范.rb:

require 'rails_helper'

RSpec.feature "User login", type: :feature, js: true do

before :each do
@user = User.create!(
first_name: "Bob",
last_name: "Brown",
email: "bob@email.com",
password: "bob1",
has_accepted_terms: true
)
end

scenario "User logs in with correct credentials" do
visit root_path
save_screenshot
click_on 'Log In'
sleep 1
save_screenshot

end

end

最佳答案

因此,如果我运行开发服务器并转到 'localhost:3000(这基本上就是您要告诉 Capybara 执行的操作),那么页面上会出现一个损坏的“登录”链接指向应用程序不处理的 app.localhost:3000/login。这是因为访问没有 app 子域的 URL 使用 application.html.haml 布局,其中不包含 JS(因此没有 Vue 路由器来处理 /login 路径)。但是,如果我在浏览器中转到 app.localhost:3000,那么就会有一个带有有效 Log In 链接的页面,因为所有 JS 都已加载到该页面上(包括 Vue路由器),因为它使用 app.html.haml 布局(BaseController)

您需要修复主主页链接才能正常运行和/或配置 Capybara 默认连接到 app 子域

Capybara.app_host = 'http://app.localhost' # hostname with ‘app’ sub domain that resolves to interface the AUT is being run on
Capybara.always_include_port = true

基本上 Capybaras 告诉您您的应用程序主页已损坏,因为它已损坏。

关于ruby-on-rails - RSpec - Capybara 和 Puma - 路由错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50419511/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com