Ruby on rails 如何在Rspec中创建回调之前跳过
您好,我正在使用一个带有ruby-2.2.5和Rails 5的Rails应用程序。我正在使用rspec测试我的控制器。在创建:创建令牌之前,在用户模型Ruby on rails 如何在Rspec中创建回调之前跳过,ruby-on-rails,rspec,callback,Ruby On Rails,Rspec,Callback,您好,我正在使用一个带有ruby-2.2.5和Rails 5的Rails应用程序。我正在使用rspec测试我的控制器。在创建:创建令牌之前,在用户模型中有一个回调我想跳过rspec中的这个回调 spec/controllers/check_token_controller_spec.rb # frozen_string_literal: true require 'rails_helper' describe CheckTokenController do before do
中有一个回调
我想跳过rspec中的这个回调
spec/controllers/check_token_controller_spec.rb
# frozen_string_literal: true
require 'rails_helper'
describe CheckTokenController do
before do
@user = User.create!(fullname: 'saddam husain',
email: 'saddam@gmail.com',
password: 'pass',
password_confirmation: 'pass',token: 'xyz')
end
describe 'POST create' do
subject { post :create, params: params }
context 'when credentials are valid' do
let(:params) do
{ data: { attributes: { username: 'saddam@gmail.com', token: 'xyz' } } }
end
it { is_expected.to have_http_status(200) }
end
context 'when credentials are invalid' do
let(:params) do
{ data: { attributes: { username: 'saddam@gmail.com', token: '' } } }
end
it { is_expected.to have_http_status(401) }
end
end
end
我想跳过创建令牌回调。请帮助我如何跳过。快速解决方案是使用方法为所有类存根
创建\u令牌
before do
allow_any_instance_of(User).to receive(:create_token)
@user = User.create!(fullname: 'saddam husain', email: 'saddam@gmail.com', ...)
end
不建议这样做(请阅读完整部分),您可能需要跳过第三方代码或create_token
方法中的服务集成。因此,您应该模拟此服务,而不是create\u-token
方法。以下是有关如何执行此操作的示例:
让我们知道您的create\u token
方法的内容,以便我们能更好地帮助您。一个快速解决方案是使用该方法为所有类存根create\u token
before do
allow_any_instance_of(User).to receive(:create_token)
@user = User.create!(fullname: 'saddam husain', email: 'saddam@gmail.com', ...)
end
不建议这样做(请阅读完整部分),您可能需要跳过第三方代码或create_token
方法中的服务集成。因此,您应该模拟此服务,而不是create\u-token
方法。以下是有关如何执行此操作的示例:
让我们知道您的create_token
方法的内容,以便我们能更好地帮助您。问题应该是“为什么要这样做?”问题应该是“为什么要这样做?”