Class: Neospec::Spec
- Inherits:
-
Object
- Object
- Neospec::Spec
- Defined in:
- lib/neospec/spec.rb,
lib/neospec/spec/result.rb,
lib/neospec/spec/result/failure.rb
Defined Under Namespace
Classes: Result
Constant Summary collapse
- COMMANDS =
%w[Given And But When Then]
Instance Method Summary collapse
- #description ⇒ Object
- #duration ⇒ Object
- #expect(value) ⇒ Object
- #expectations ⇒ Object
- #failures ⇒ Object
-
#initialize(description:, block:) ⇒ Spec
constructor
A new instance of Spec.
- #log(message, context: nil, result: nil) ⇒ Object
- #result ⇒ Object
- #run(logger:) ⇒ Object
- #successful? ⇒ Boolean
Constructor Details
#initialize(description:, block:) ⇒ Spec
Returns a new instance of Spec.
5 6 7 8 9 10 11 12 |
# File 'lib/neospec/spec.rb', line 5 def initialize(description:, block:) # Everything here is prefixed to prevent people's specs overriding it, # this came to be because I've already accidentally done this a few # times. @__result = Neospec::Spec::Result.new @__description = description @__block = block end |
Instance Method Details
#description ⇒ Object
14 15 16 |
# File 'lib/neospec/spec.rb', line 14 def description @__description end |
#duration ⇒ Object
22 23 24 |
# File 'lib/neospec/spec.rb', line 22 def duration @__result.duration end |
#expect(value) ⇒ Object
57 58 59 60 61 62 63 64 |
# File 'lib/neospec/spec.rb', line 57 def expect(value) Neospec::Expector.new( result: @__result, actual: value, stack: caller, logger: @__logger ) end |
#expectations ⇒ Object
30 31 32 |
# File 'lib/neospec/spec.rb', line 30 def expectations @__result.expectations end |
#failures ⇒ Object
34 35 36 |
# File 'lib/neospec/spec.rb', line 34 def failures @__result.failures end |
#log(message, context: nil, result: nil) ⇒ Object
38 39 40 |
# File 'lib/neospec/spec.rb', line 38 def log(, context: nil, result: nil) @__logger.log(, context: context, result: result) end |
#result ⇒ Object
18 19 20 |
# File 'lib/neospec/spec.rb', line 18 def result @__result end |
#run(logger:) ⇒ Object
42 43 44 45 46 47 48 |
# File 'lib/neospec/spec.rb', line 42 def run(logger:) @__logger = logger instance_exec { log(@__description, context: :describe) } result.start! instance_exec(&@__block) result.finish! end |
#successful? ⇒ Boolean
26 27 28 |
# File 'lib/neospec/spec.rb', line 26 def successful? @__result.successful? end |