gpt4 book ai didi

rspec - Sinatra、Rspec 和 Capybara 没有响应方法

转载 作者:行者123 更新时间:2023-12-01 12:59:56 25 4
gpt4 key购买 nike

我正在尝试使用 Capybara + Rspec 来测试 Sinatra 应用程序,但我在将 Capybara 与 Rspec 集成时遇到了一些问题。这是我的 spec_helper.rb:

require './myapp'
require 'capybara/rspec'
Capybara.app = MyApp

然后,在我的 app_spec.rb 中,我有:

require_relative 'spec_helper'

describe "My App", type: :request do
describe "get 'home'" do
it "should be successful" do
visit '/'
response.should be_successful
end
end
end

根据我能找到的所有文档,这应该可以正常工作。 . .但是当我运行 rspec spec 时,我得到了这个:

Failures:

1) Our App get 'home' should be successful
Failure/Error: response.should be_successful
NameError:
undefined local variable or method `response' for #<RSpec::Core::ExampleGroup::Nested_1::Nested_1:0x007f8321289e60>
# ./spec/app_spec.rb:11:in `block (3 levels) in <top (required)>'

我做了一些研究,我可以通过将此方法放入规范文件来解决问题:

def response 
page.driver.browser.last_response
end

但这感觉很糟糕。

有更好的解决方案吗?我错过了什么?

最佳答案

嗯,没有回应方法。我认为这仅在 RSpec2/Capybara 的 Rails 插件中(对此不确定)。

只需使用 last_response 而不是 response:

last_response.should be_successful

你应该没问题。

编辑:好像你缺少一些测试方法。在您的 spec_helper.rb 中试试这个:

RSpec.configure do |conf|
conf.include Rack::Test::Methods
end

您需要先要求 rack/test

关于rspec - Sinatra、Rspec 和 Capybara 没有响应方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7098227/

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