예 : store#process_order
과 같이 테스트해야하는 여러 가지 작업을 수행하는 인스턴스 메소드가 있습니다. 고객에게 전자 메일을 보내고 orders 테이블에 항목을 추가하고 신용 카드를 청구하는지 테스트하고 싶습니다. rspec에서 이것을 설정하는 가장 좋은 방법은 무엇입니까? 현재, 저는 rspec과 factory girl을 사용하고 있습니다. 다음과 같이합니다 :여러 "it"블록을 사용하여 rspec에서 테스트 설정
describe Store do
describe "#process_order" do
before do
@store = Factory(:store)
@order = Factory(:order)
# call the process method
@store.process_order(@order)
end
it 'sends customer an email' do
...
end
it 'inserts order to db' do
...
end
it 'charges credit card' do
...
end
end
end
하지만 정말 지루합니다. 이 방법이 실제로 여러 가지 작업을 수행하는 데 필요한 메서드에 대한 스펙을 작성하는 올바른 방법일까요?
참고 : 좋은 디자인인지 여부에 대한 답변에 관심이 없습니다. 그것은 내가/내 질문 - 이런 종류의 사양을 작성하는 방법을 도왔습니다.
여러 가지 일을하는 경우 몇 가지 다른 테스트가 있어야합니다. 드라이는 규칙이 아닙니다! – Eric