stubbing factory_girl + rspec методы и атрибуты - PullRequest
0 голосов
/ 04 октября 2010

Я использую factory_girl + rspec в Rails 2-3-stable:

Тест:

   context "test" do
      before(:each) do
        @profile.stub!(:lastfm_enabled?).and_return(true)
      end
      it "should be able to scrobble if true" do
        @profile.update_attribute(:lastfm_scrobbling, true)
        @profile.lastfm_scrobbling_enabled?.should be_true
      end
    end

Код:

def lastfm_scrobbling_enabled?
  lastfm_enabled? && lastfm_scrobbling
end

Этот простой тест не пройден, плюс реальный lastfm_enabled? метод вызывается по-настоящему.

@ профиль не макет, он создан с помощью factory_girl.

Сначала я также указал атрибут lastfm_scrobbling, но думал о том, как работает factory_girl, и предпочел установить его напрямую.

Есть идеи, почему?

1 Ответ

3 голосов
/ 04 октября 2010

Вам нужно заглушить метод read_attribute

  before(:each) do
    @profile.stub!(:read_attribute).with(:lastfm_enabled).and_return(true)
  end
...