Как бы одна спецификация ActiveRecord :: Base.find (что-то) .method с should_receive? - PullRequest
0 голосов
/ 23 марта 2011

Допустим, у нас есть следующий код:

class Post < ActiveRecord::Base
  def self.fix_published_times
    where(:published => true, :published_at => nil).limit(5).each do |post
      post.fix_published_at!
    end
  end
end

Как мне указать Post#fix_published__at! с should_receive?

1 Ответ

1 голос
/ 23 марта 2011

Что-то вроде этого должно работать:

  mock_posts = [mock("post 1"), mock("post 2")]
  Post.should_receive(:where).with(:published => true, :published_at => nil).and_return(mock_posts)
  mock_posts.each do |mp|
    mp.should_receive(:fix_published_at!).and_return(true)
  end
  Post.fix_published_times
...