Merge branch 'master' of gitlab.com:arctic-fox/spectator

This commit is contained in:
Michael Miller 2019-04-03 18:20:24 -06:00
commit 7a0e28945a
5 changed files with 67 additions and 2 deletions

View file

@ -5,7 +5,7 @@ module Spectator
extend self
# Current version of the Spectator library.
VERSION = "0.1.0"
VERSION = "0.5.0"
# Top-level describe method.
# All specs in a file must be wrapped in this call.

View file

@ -527,7 +527,7 @@ module Spectator::DSL
# expect_raises { raise "foobar" }
# ```
macro expect_raises
expect {{yield}}.to raise_error
expect {{block}}.to raise_error
end
# Indicates that some block should raise an error with a given type.

View file

@ -1412,6 +1412,34 @@ module Spectator::DSL
::Spectator::DSL::Builder.add_example(Example%example)
end
# Creates an example, or a test case.
# The block contains the code to run the test.
# One or more expectations should be in the block.
#
# ```
# it { expect(1 + 2).to eq(3) }
# ```
#
# See `ExampleDSL` and `MatcherDSL` for additional macros and methods
# that can be used in example code blocks.
#
# A short-hand, one-liner syntax can also be used.
# Typically, this is combined with `#subject`.
# For instance:
# ```
# subject { 1 + 2 }
# it is_expected.to eq(3)
# ```
macro it(&block)
it({{block.body.stringify}}) {{block}}
end
# An alternative way to write an example.
# This is identical to `#it`.
macro specify(what, &block)
it({{what}}) {{block}}
end
# An alternative way to write an example.
# This is identical to `#it`,
# except that it doesn't take a "what" argument.
@ -1456,12 +1484,33 @@ module Spectator::DSL
::Spectator::DSL::Builder.add_example(Example%example)
end
# Creates an example, or a test case, that does not run.
# This can be used to prototype functionality that isn't ready.
# The *what* argument describes "what" is being tested or asserted.
# The block contains the code to run the test.
# One or more expectations should be in the block.
#
# ```
# pending do
# # Something that isn't implemented yet.
# end
# ```
macro pending(&block)
peding({{block.body.stringify}}) {{block}}
end
# Same as `#pending`.
# Included for compatibility with RSpec.
macro xit(what, &block)
pending({{what}}) {{block}}
end
# Same as `#pending`.
# Included for compatibility with RSpec.
macro xit(&block)
pending({{block.body.stringify}}) {{block}}
end
# Creates a wrapper class for test code.
# The class serves multiple purposes, mostly dealing with scope.
# 1. Include the parent modules as mix-ins.