Module: Shoulda::InstanceMethods

Included in:
Test::Unit::TestCase
Defined in:
lib/shoulda/context.rb

Instance Method Summary collapse

Instance Method Details

#get_instance_of(object_or_klass) ⇒ Object

:nodoc:



266
267
268
269
270
271
272
# File 'lib/shoulda/context.rb', line 266

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:



274
275
276
# File 'lib/shoulda/context.rb', line 274

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.



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

def subject
  @shoulda_subject ||= construct_subject
end

#subject_blockObject

:nodoc:



262
263
264
# File 'lib/shoulda/context.rb', line 262

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