Я борюсь со следующим RSpec. Почему это работает:
it 'GET articles#new creates new instance of Article' do
get :new
expect(assigns[:article]).to be_a(Article)
end
И ни один из них не нашел (нашел несколько примеров с разными скобками, и поэтому я решил проверить обе возможности)
subject { get :new }
it { expect(assigns[:article]).to be_a(Article) }
it { expect(assigns(:article)).to be_a(Article) }
Я получаю эту ошибку:
Failure/Error: it { expect(assigns(:article)).to be_a(Article) }
expected nil to be a kind of Article(id: integer, title: string, body: string, author_id: integer, created_at: datetime, updated_at: datetime)
# ./spec/controllers/articles_controller_spec.rb:35:in `block (4 levels) in <top (required)>'
Я не знаю, как извлечь "статью" из темы ...
Я также попробовал несколько различных комбинаций "субъекта" и "назначения" внутри него {...}, но не смог заставить его работать.
Я бы предпочел содержать его в чистоте и хранить только в одной строке :)
Кстати: есть ли у вас другие привычки писать спецификации для контроллеров? (Я уже проверяю ответ 200)