Новичок RSpec здесь - я пытаюсь создать спецификацию запроса для контроллера, который имеет несколько начальных состояний.Чтобы проверить возможные перестановки, у меня есть вложенные контексты, но они не работают так, как я думал.Я попытался покопаться в API rspec, чтобы посмотреть, могут ли помочь такие вещи, как append_before / prepend_before, но, похоже, они работают только в пределах контекста, а не на уровнях вложенности.
Я написал следующее:
context 'old A' do
before { create :a }
context 'old B' do
before { create :b }
context 'old C' do
before {create :c}
before {post '/endpoint'}
it('foos') {assert true}
it('bars') {assert true}
end
context 'no C' do
before {post '/endpoint'}
it('foos') {assert true}
it('bars') {assert true}
end
end
context 'no B' do
before {post '/endpoint'}
it('foos') {assert true}
it('bars') {assert true}
end
end
context 'no A' do
before { post '/endpoint' }
it('foos') { assert true }
it('bars') { assert true }
end
Я бы хотел написать что-то вроде этого:
final_before {post '/endpoint'}
it_deep('foos') {assert true}
it_deep('bars') {assert true}
# implicit foo/bar assertion
# implicit post
context 'old A' do
before { create :a }
# implicit foo/bar assertion
# implicit post after creating a
context 'old B' do
before { create :b }
# implicit foo/bar assertion
# implicit post after creating a and b
context 'old C' do
before {create :c}
# implicit foo/bar assertion
# implicit post after creating a and b and c
end
end
end
То, что у меня уже неткажется очень сухим, вероятно, не подходит с правильным стилем для rspecs.У кого-нибудь есть какие-либо рекомендации о том, как мне привести в порядок вещи?