Module: Kernel
Relationships & Source Files | |
Defined in: | lib/minitest/spec.rb |
Overview
Kernel
extensions for minitest
Instance Method Summary
-
describe(desc, *additional_desc, &block)
private
Describe a series of expectations for a given target
desc
.
Instance Method Details
describe(desc, *additional_desc, &block) (private)
Describe a series of expectations for a given target desc
.
Defines a test class subclassing from either ::Minitest::Spec
or from the surrounding describe’s class. The surrounding class may subclass ::Minitest::Spec
manually in order to easily share code:
class MySpec < Minitest::Spec
# ... shared code ...
end
class TestStuff < MySpec
it "does stuff" do
# shared code available here
end
describe "inner stuff" do
it "still does stuff" do
# ...and here
end
end
end
For more information on getting started with writing specs, see:
www.rubyinside.com/a-minitestspec-tutorial-elegant-spec-style-testing-that-comes-with-ruby-5354.html
For some suggestions on how to improve your specs, try:
but do note that several items there are debatable or specific to rspec.
For more information about expectations, see ::Minitest::Expectations
.
# File 'lib/minitest/spec.rb', line 82
def describe desc, *additional_desc, &block # :doc: stack = Minitest::Spec.describe_stack is_spec_class = Class === self && kind_of?(Minitest::Spec::DSL) name = [stack.last, desc, *additional_desc] name.prepend self if stack.empty? && is_spec_class sclas = stack.last \ || (is_spec_class && self) \ || Minitest::Spec.spec_type(desc, *additional_desc) cls = sclas.create name.compact.join("::"), desc stack.push cls cls.class_eval(&block) stack.pop cls end