Как заглушить свойство на объекте фабрики в RSpec - PullRequest
1 голос
/ 30 ноября 2011

Как мне заглушить это свойство?

user.Все еще не работает.Что происходит ??

user = @business.users.all.first
user.stub_chain(:business, :settings_group, :scheduling_frequency).and_return(30)
user.my_method()

-

  def my_method
    debugger
    # p self.business.settings_group.scheduling_frequency -> 60
  end

1 Ответ

2 голосов
/ 30 ноября 2011

Вам нужно заглушки цепочкой весь путь и в правильном контексте (в данном случае, пользователь)

user = User.new
user.stub_chain(:business, :settings_group, :scheduling_frequency).and_return(30)
user.my_method

Я попробовал следующее автономно, и это сработало. (Я сделал это вне рельсов, поэтому метод минут был недоступен.)

require 'rspec'

class User
  def my_method
    scheduling_frequency_minutes = self.business.settings_group.scheduling_frequency
  end
end

describe User do
  it "get available time slots (on the half hour)" do
    user = User.new
    user.stub_chain(:business, :settings_group, :scheduling_frequency).and_return(30)
    user.my_method.should eql(30)
  end

end
...