Obecnie, kiedy mam sposób opóźniony w moim kodu jak poniżej:Jaki jest najlepszy sposób przetestowania łańcuchów delayed_job za pomocą programu rSpec?
CommentMailer.delay.deliver_comments(@comment, true)
piszę coś takiego w moim specyfikacji:
dj = mock("DelayProxy")
CommentMailer.should_receive(:delay).and_return(dj)
dj.should_receive(:deliver_comments).with(comment, true)
Czy istnieje lepszy sposób, aby sobie z tym poradzić i/lub przykuty metod takich jak w rSpec w ogóle?
Korzystanie 'stub' ze starego' rspec-drwi składni should' bez wyraźnego umożliwiając składnia jest przestarzałe w rspec-3. To wydaje się działać 'oczekiwać (CommentMailer) .to otrzymać (: opóźnienie) .and_return (CommentMailer)'. Jeśli nie chcesz jawnie go testować, możesz użyć 'allow' zamiast' spodziewać'. – Pete