D | = | self |
Allows before and after hooks to be specified via the D() method syntax when this module is mixed-in: D .< { puts "before each nested test" } D .> { puts "after each nested test" } D .<< { puts "before all nested tests" } D .>> { puts "after all nested tests" } |
[R] | report | Hash of test results, assembled by run.
|
[RW] | options | Hash of choices that affect how Dfect operates.
|
Registers the given block to be executed before each nested test inside this test.
Examples
D .< { puts "before each nested test" } D .< do puts "before each nested test" end
Registers the given block to be executed before all nested tests inside this test.
Examples
D .<< { puts "before all nested tests" } D .<< do puts "before all nested tests" end
Registers the given block to be executed after each nested test inside this test.
Examples
D .> { puts "after each nested test" } D .> do puts "after each nested test" end
Registers the given block to be executed after all nested tests inside this test.
Examples
D .>> { puts "after all nested tests" } D .>> do puts "after all nested tests" end
Asserts that the given symbol is thrown when the given block is executed.
If a value is thrown along with the expected symbol, then that value is returned.
Otherwise, nil is returned.
Parameters
- message
- Optional message to show in the report if this assertion fails.
- symbol
- Symbol that must be thrown by the given block.
Examples
# no message specified: C(:foo) { throw :foo, 123 } # passes, => 123 C(:foo) { throw :bar, 456 } # fails, => 456 C(:foo) { } # fails, => nil # message specified: C( ":foo must be thrown", :foo ) { throw :bar, 789 } # fails, => nil
Asserts that the given symbol is not thrown when the given block is executed.
Returns nil, always.
Parameters
- message
- Optional message to show in the report if this assertion fails.
- symbol
- Symbol that must not be thrown by the given block.
Examples
# no message specified: C!(:foo) { throw :foo, 123 } # fails, => nil C!(:foo) { throw :bar, 456 } # passes, => nil C!(:foo) { } # passes, => nil # message specified: C!( ":foo must be thrown", :foo ) { throw :bar, 789 } # passes, => nil
Returns true if the given symbol is thrown when the given block is executed. Otherwise, returns false.
Parameters
- message
- This parameter is optional and completely ignored.
- symbol
- Symbol that must be thrown by the given block.
Examples
# no message specified: C?(:foo) { throw :foo, 123 } # => true C?(:foo) { throw :bar, 456 } # => false C?(:foo) { } # => false # message specified: C?( ":foo must be thrown", :foo ) { throw :bar, 789 } # => false
Defines a new test, composed of the given description and the given block to execute.
A test may contain nested tests.
Parameters
- description
- A short summary of the test being defined.
Examples
D "a new array" do D .< { @array = [] } D "must be empty" do T { @array.empty? } end D "when populated" do D .< { @array.push 55 } D "must not be empty" do F { @array.empty? } end end end
Asserts that one of the given kinds of exceptions is raised when the given block is executed.
If the block raises an exception, then that exception is returned.
Otherwise, nil is returned.
Parameters
- message
- Optional message to show in the report if this assertion fails.
- kinds
- Exception classes that must be raised by the given block.
If none are given, then StandardError is assumed (similar to how a plain ‘rescue’ statement without any arguments catches StandardError).
Examples
# no exceptions specified: E { } # fails E { raise } # passes # single exception specified: E( ArgumentError ) { raise ArgumentError } E( "argument must be invalid", ArgumentError ) { raise ArgumentError } # multiple exceptions specified: E( SyntaxError, NameError ) { eval "..." } E( "string must compile", SyntaxError, NameError ) { eval "..." }
Asserts that one of the given kinds of exceptions is not raised when the given block is executed.
If the block raises an exception, then that exception is returned.
Otherwise, nil is returned.
Parameters
- message
- Optional message to show in the report if this assertion fails.
- kinds
- Exception classes that must not be raised by the given block.
If none are given, then StandardError is assumed (similar to how a plain ‘rescue’ statement without any arguments catches StandardError).
Examples
# no exceptions specified: E! { } # passes E! { raise } # fails # single exception specified: E!( ArgumentError ) { raise ArgumentError } # fails E!( "argument must be invalid", ArgumentError ) { raise ArgumentError } # multiple exceptions specified: E!( SyntaxError, NameError ) { eval "..." } E!( "string must compile", SyntaxError, NameError ) { eval "..." }
Returns true if one of the given kinds of exceptions is raised when the given block is executed. Otherwise, returns false.
Parameters
- message
- This parameter is optional and completely ignored.
- kinds
- Exception classes that must be raised by the given block.
If none are given, then StandardError is assumed (similar to how a plain ‘rescue’ statement without any arguments catches StandardError).
Examples
# no exceptions specified: E? { } # => false E? { raise } # => true # single exception specified: E?( ArgumentError ) { raise ArgumentError } # => true # multiple exceptions specified: E?( SyntaxError, NameError ) { eval "..." } # => true
Returns true if the result of the given block is either nil or false. Otherwise, returns false.
Parameters
- message
- This parameter is optional and completely ignored.
Examples
# no message specified: F? { true } # => false F? { false } # => true F? { nil } # => true # message specified: F?( "computers do not doublethink" ) { 2 + 2 == 5 } # => true
Asserts that the result of the given block is neither nil nor false and returns that result.
Parameters
- message
- Optional message to show in the report if this assertion fails.
Examples
# no message specified: T { true } # passes T { false } # fails T { nil } # fails # message specified: T( "computers do not doublethink" ) { 2 + 2 != 5 } # passes
Asserts that the result of the given block is either nil or false and returns that result.
Parameters
- message
- Optional message to show in the report if this assertion fails.
Examples
# no message specified: T! { true } # fails T! { false } # passes T! { nil } # passes # message specified: T!( "computers do not doublethink" ) { 2 + 2 == 5 } # passes
Returns true if the result of the given block is neither nil nor false. Otherwise, returns false.
Parameters
- message
- This parameter is optional and completely ignored.
Examples
# no message specified: T? { true } # => true T? { false } # => false T? { nil } # => false # message specified: T?( "computers do not doublethink" ) { 2 + 2 != 5 } # => true
Executes all tests defined thus far and stores the results in report.