在RSpec 3上迁移后,请求测试失败。 这是我的测试
describe 'GET /api/v1/activities' do
let!(:user) { create(:user) }
subject { json['activities'] }
context 'when not authenticated' do
let(:token) { user.authentication_token }
let(:email) { 'unregistered.user@mail.com' }
before :each do
get '/api/v1/activities', {}, {token: token, email: email}
end
it { expect(response).to_not be_success }
end
end
这是rspec log
Activities GET /api/v1/activities when not authenticated
Failure/Error: get '/api/v1/activities', {}, {token: token, email: email}
NoMethodError:
undefined method `get' for #<RSpec::ExampleGroups::Activities::GETApiV1Activities::WhenNotAuthenticated:0x0000000becfaf8>
它有什么用?
答案 0 :(得分:5)
好的,迁移到RSpec3是导致此问题的原因。 我通过迁移到RSpec 2.99.0来解决它,我收到了一个提示,将此代码添加到我的spec_helper
RSpec.configure do |config|
config.infer_spec_type_from_file_location!
end
现在它有效。乌拉!
答案 1 :(得分:1)
我已经设置了infer_spec_type_from_file_location!
,但我们仍然在这里使用了capybara功能语法,这可能会将类型设置为功能。我将feature
更改为describe
后,就可以了。
答案 2 :(得分:0)
尝试添加帮助程序以请求规范。在spec_helper.rb
:
config.include RSpec::Rails::RequestExampleGroup, type: :request
此外,我假设您在规范定义中有type: :request
。