Method: Minitest::Spec::DSL#it

Defined in:
lib/minitest/spec.rb

#it(desc = "anonymous", &block) ⇒ Object Also known as: specify

Define an expectation with name desc. Name gets morphed to a proper test method name. For some freakish reason, people who write specs don’t like class inheritance, so this goes way out of its way to make sure that expectations aren’t inherited.

This is also aliased to #specify and doesn’t require a desc arg.

Hint: If you do want inheritance, use minitest/test. You can mix and match between assertions and expectations as much as you want.


224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
# File 'lib/minitest/spec.rb', line 224

def it desc = "anonymous", &block
  block ||= proc { skip "(no tests defined)" }

  @specs ||= 0
  @specs += 1

  name = "test_%04d_%s" % [ @specs, desc ]

  undef_klasses = self.children.reject { |c| c.public_method_defined? name }

  define_method name, &block

  undef_klasses.each do |undef_klass|
    undef_klass.send :undef_method, name
  end

  name
end