【发布时间】:2018-04-24 19:35:05
【问题描述】:
我正在使用 Rspec 测试我的 rails 应用程序和 FactoryBot(工厂女孩的新名称)来创建模拟。但是在每个文件中我需要调用很多模拟。几乎就是这样,调用一些模拟,创建一个用户,登录并确认这个用户。我可以创建一个方法来调用所有这些模拟、登录并确认用户吗?那我只需要调用这个方法。
这是我在每个 rspec 文件中调用的内容:
let!(:nivel_super) { create(:nivel_super) }
let!(:gestora_fox) { create(:gestora_fox) }
let!(:user_mock) { create(:simple_super) }
let!(:super_user) { create(:super_user,
nivel_acesso_id: nivel_super.id, gestora_id: gestora_fox.id) }
let!(:ponto_venda) { create(:ponto_venda1) }
let!(:tipo_op) { create(:tipo_op) }
before(:each) do
@request.env["devise.mapping"] = Devise.mappings[:user]
super_user.confirm
sign_in super_user
end
我在想这样的事情:
def call_mocks
# put the code above
end
比在每个 rspec 文件中:
RSpec.describe OrdemPrincipalsController, type: :controller do
describe 'Ordem Principal tests' do
call_mocks
it 'go to new page' do
# my test
end
end
end
【问题讨论】:
标签: ruby-on-rails testing rspec ruby-on-rails-5 rspec-rails