例如,当使用new_user_path
时,是否可以仅从此帮助程序推断出渲染的模板名称?
我正在使用rspec的shared examples,并通过仅将路由帮助程序传递到共享示例中来寻找一种断言所呈现的模板是正确模板(而不是重定向)的方法。
即如果我只通过???
,path
应该是什么?
shared_examples 'my spec' do
it 'will not redirect' do
get path
expect(response).to render_template(???)
end
end
Rspec.describe 'MySpec' do
it_behaves_like 'my spec' do
let(:path) { new_user_path }
end
end
答案 0 :(得分:0)
鉴于这是一个控制器共享的示例,可以使用以下代码:
shared_examples 'my spec' do
it 'will not redirect' do
get path
expect(response).to render_template(request.params['action'])
end
end
Rspec.describe 'MySpec' do
it_behaves_like 'my spec' do
let(:path) { new_user_path }
end
end
在用户控制器的上下文中,测试将是:
it 'will not redirect' do
get new_user_path # => get '/users/new'
expect(response).to render_template('new')
end
RSpec的render_template
matcher仅需要执行操作。