Проблемы с использованием RSpec 'its' функции

Я использую Ruby on Rails 3.0.9, RSpec-rails 2 и FactoryGirl. Я пытаюсь использовать функцию RSpec its в модели ассоциации (в следующем примере это :account), но у меня возникли проблемы.

В моем файле спецификации у меня есть:

describe User do
  describe "Associations" do
    let(:user) { Factory(:user, :account => Factory.build(:users_account)) }

    it { should respond_to(:account) }  # This work correctly

    its(:account) { should_not be_nil } # This does NOT work correctly (read below for more information)
  end
end

Если я запустил приведенный выше код, я получаю следующую ошибку:

Failure/Error: its(:account) { should_not be_nil }
  expected: not nil
    got: nil

Как заставить приведенный выше код работать, чтобы правильно использовать функцию RSpec its?


person user502052    schedule 20.09.2011    source источник


Ответы (1)


Вам не хватает символа ")" после (: users_account).

Кроме того, я не уверен, но вы можете попробовать использовать тему вместо того, чтобы позволить, как в,

 subject { Factory.build(:user, :account => Factory.build(:users_account)) }
person cbron    schedule 20.09.2011
comment
вы также можете использовать let, но с темой: subject { user } - person iain; 20.09.2011
comment
@Iain - вы тоже можете использовать let, но с темой ... - Можете ли вы сделать полный пример, используя let? - person user502052; 20.09.2011
comment
@ user502052 Лайн просто хотел использовать let, как это делал исходный запросчик: let(:user) {...}, а затем выполните subject {user}. - person cbron; 20.09.2011