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.
To colorize output messages, add require "power_assert/colorize" to your code. (It requires CRuby 3.0.1+ or irb 1.3.1+)
assert do
# reported
func(foo: 0123456789, bar: "abcdefg")
end
assert do
# won't be reported
func(foo: 0123456789,
bar: "abcdefg")
end
val = false
assert do
# reported
val == true
end
assert do
# won't be reported
val
end
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
condition = true
expected = false
actual = true
assert do
# this will fail but nothing reported
condition ? expected == actual : expected == actual
end