我有一系列基于 Sinatra 的 API 的 RSpec 测试,并希望重构它们以使它们更简单并减少重复。
这是一个路由测试的示例:
describe 'post /sections with empty data' do
before do
params = {
:site_id => site.id,
:page_id => page.id,
}
post '/sections', params, @session
end
specify { last_response.status.should == 200 }
specify { json_response['id'].should_not be_nil }
specify { json_response['type'].should == default_section_type }
end
每个测试都将使用相同的基本 URL,具有相同的会话数据,唯一的区别是参数以及响应应该是什么。每条路由至少有 4 个测试(GET、POST、PUT、DELETE),通常更多。
有没有办法让这些测试更易于管理?