2013-05-14 3 views
4

Есть ли более простой способ написать этот код rspec?Chain should_receive Возможно?

mailer = double 
AdminMailer.should_receive(:request_failed).with(@request).and_return(mailer) 
mailer.should_receive(:deliver) 

Я предполагая что-то вроде этого:

AdminMailer 
    .should_receive(:request_failed) 
    .with(@request) 
    .should_receive(:deliver) 

ответ

1

Я не думаю, что это возможно, но даже если это так, я бы не рекомендовал его. Ваши спецификации должны четко показать, что вы ожидаете от своего кода, и ваш первый пример уже делает это довольно лаконично!

+0

Да, я был в середине написания того же точного ответа. Даже если это действительно сработало, не делайте этого, потому что не ясно, что нужно исправлять, если одно из утверждений терпит неудачу. – messick