Скажем, у меня есть метод экземпляра, который делает много разных вещей, которые мне нужно проверить, что-то вроде store#process_order
.Я хотел бы проверить, что он отправляет электронное письмо клиенту, добавляет запись в таблицу заказов, снимает средства с кредитной карты и т. Д. Какой лучший способ настроить это в rspec?В настоящее время я использую rspec и Factory Girl, я делаю что-то вроде этого:
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
Но это действительно скучно.Действительно ли это правильный способ написать спецификацию для метода, который мне нужен, чтобы убедиться, что он выполняет несколько разных вещей?
Примечание: меня не интересуют ответы о том, является ли это хорошим дизайном.Это всего лишь пример, который я придумал, чтобы помочь с моим вопросом - как писать спецификации такого типа.