Module: Shoulda::Context::InstanceMethods

Defined in:
lib/shoulda/context/context.rb

Instance Method Summary collapse

Instance Method Details

#get_instance_of(object_or_klass) ⇒ Object

:nodoc:


261
262
263
264
265
266
267
# File 'lib/shoulda/context/context.rb', line 261

def get_instance_of(object_or_klass) # :nodoc:
  if object_or_klass.is_a?(Class)
    object_or_klass.new
  else
    object_or_klass
  end
end

#instance_variable_name_for(klass) ⇒ Object

:nodoc:


269
270
271
# File 'lib/shoulda/context/context.rb', line 269

def instance_variable_name_for(klass) # :nodoc:
  klass.to_s.split('::').last.underscore
end

#subjectObject

Returns an instance of the class under test.

class UserTest
  should "be a user" do
    assert_kind_of User, subject # passes
  end
end

The subject can be explicitly set using the subject class method:

class UserTest
  subject { User.first }
  should "be an existing user" do
    assert !subject.new_record? # uses the first user
  end
end

The subject is used by all macros that require an instance of the class being tested.


253
254
255
# File 'lib/shoulda/context/context.rb', line 253

def subject
  @shoulda_subject ||= construct_subject
end

#subject_blockObject

:nodoc:


257
258
259
# File 'lib/shoulda/context/context.rb', line 257

def subject_block # :nodoc:
  (@shoulda_context && @shoulda_context.subject_block) || self.class.subject_block
end