Power Assert for Ruby.
Power Assert shows each value of variables and method calls in the expression. It is useful for testing, providing which value wasn’t correct when the condition is not satisfied.
Failure: assert { 3.times.to_a.include?(3) } | | | | | false | [0, 1, 2] #<Enumerator: 3:times>
In general, you don’t need to use this library directly. Use following test frameworks or extensions instead.
test-unit(>= 3.0.0)
CRuby 2.0.0 or later
Expressions must be put in one line. Expressions with folded long lines produce nothing report, e.g.:
assert do # reported func(foo: 0123456789, bar: "abcdefg") end assert do # won't be reported func(foo: 0123456789, bar: "abcdefg") end
Expressions must have one or more method call. Expressions with no method call produce nothing report, e.g.:
val = false assert do # reported val == true end assert do # won't be reported val end
Returned values from accessor methods, method missing, or “super” produce nothing report, e.g:
class Foo attr_accessor :val end foo = Foo.new foo.val = false assert do # reported (only the value of "foo" and the literal "true") foo.val == true end assert do # won't be reported foo.val end
Expressions should not have conditional branches. Expressions with such conditional codes may produce nothing report, e.g.:
condition = true expected = false actual = true assert do # this will fail but nothing reported condition ? expected == actual : expected == actual end