title: RuntimeError: #let or #subject called without a block
body: <p>This is my first rspec test
  I was using Hurtl's tutorial and figured that it is outdated.
  I want to change this line because <code>its</code> is no longer a part of rspec:</p>
  
  <pre><code>  its(:user) { should == user }
  </code></pre>
  
  <p>I tried to do this:</p>
  
  <pre><code>  expect(subject.user).to eq(user)
  </code></pre>
  
  <p>But get an error </p>
  
  <blockquote>
    <p>RuntimeError: #let or #subject called without a block</p>
  </blockquote>
  
  <p>This is my full rspec test if you need it:</p>
  
  <pre><code>require 'spec_helper'
  require "rails_helper" 
  
  describe Question do
  
    let(:user) { FactoryGirl.create(:user) }
    before { @question = user.questions.build(content: "Lorem ipsum") }
  
    subject { @question }
  
    it { should respond_to(:body) }
    it { should respond_to(:title) }
    it { should respond_to(:user_id) }
    it { should respond_to(:user) }
  
    expect(subject.user).to eq(user)
    its(:user) { should == user }
  
    it { should be_valid }
  
    describe "accessible attributes" do
      it "should not allow access to user_id" do
        expect do
          Question.new(user_id: user.id)
        end.to raise_error(ActiveModel::MassAssignmentSecurity::Error)
      end
    end
  
    describe "when user_id is not present" do
      before { @question.user_id = nil }
      it { should_not be_valid }
    end
  end
  </code></pre>