Class: Matest::ExampleGroup
- Inherits:
-
Object
- Object
- Matest::ExampleGroup
- Defined in:
- lib/matest.rb
Instance Attribute Summary collapse
-
#scope_block ⇒ Object
readonly
Returns the value of attribute scope_block.
-
#specs ⇒ Object
readonly
Returns the value of attribute specs.
-
#statuses ⇒ Object
readonly
Returns the value of attribute statuses.
Instance Method Summary collapse
- #execute! ⇒ Object
-
#initialize(scope_block) ⇒ ExampleGroup
constructor
A new instance of ExampleGroup.
- #run_spec(spec, description) ⇒ Object
- #spec(description = nil, &block) ⇒ Object
- #xspec(description = nil, &block) ⇒ Object
Constructor Details
#initialize(scope_block) ⇒ ExampleGroup
Returns a new instance of ExampleGroup.
132 133 134 135 136 |
# File 'lib/matest.rb', line 132 def initialize(scope_block) @scope_block = scope_block @specs = [] @statuses = [] end |
Instance Attribute Details
#scope_block ⇒ Object (readonly)
Returns the value of attribute scope_block.
128 129 130 |
# File 'lib/matest.rb', line 128 def scope_block @scope_block end |
#specs ⇒ Object (readonly)
Returns the value of attribute specs.
129 130 131 |
# File 'lib/matest.rb', line 129 def specs @specs end |
#statuses ⇒ Object (readonly)
Returns the value of attribute statuses.
130 131 132 |
# File 'lib/matest.rb', line 130 def statuses @statuses end |
Instance Method Details
#execute! ⇒ Object
138 139 140 141 142 143 144 145 |
# File 'lib/matest.rb', line 138 def execute! instance_eval(&scope_block) specs.shuffle.each do |spec, desc| res = run_spec(spec, desc) print res end end |
#run_spec(spec, description) ⇒ Object
161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 |
# File 'lib/matest.rb', line 161 def run_spec(spec, description) status = begin result = spec.call status_class = case result when true Matest::SpecPassed when false Matest::SpecFailed when Matest::SkipMe Matest::SpecSkipped else Matest::NotANaturalAssertion end status_class.new(spec, result, description) rescue Exception => e Matest::ExceptionRaised.new(spec, e, description) end @statuses << status status end |
#spec(description = nil, &block) ⇒ Object
147 148 149 150 |
# File 'lib/matest.rb', line 147 def spec(description=nil, &block) current_example = block_given? ? block : -> { Matest::SkipMe.new } specs << [current_example, description] end |
#xspec(description = nil, &block) ⇒ Object
152 153 154 |
# File 'lib/matest.rb', line 152 def xspec(description=nil, &block) spec(description) end |