Created
December 16, 2015 01:32
-
-
Save pinzolo/563b167a4e4fd89bd2d1 to your computer and use it in GitHub Desktop.
expressionの結果が変化したかどうかを検証するassertion
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def assert_change(expression, message = nil, &block) | |
exp = expression.respond_to?(:call) ? expression : ->{ eval(expression, block.binding) } | |
before = exp.call | |
yield | |
error = "#{expression.inspect} didn't change" | |
error = "#{message}.\n#{error}" if message | |
assert_not_equal before, exp.call, error | |
end | |
def assert_not_change(expression, message = nil, &block) | |
exp = expression.respond_to?(:call) ? expression : ->{ eval(expression, block.binding) } | |
before = exp.call | |
yield | |
error = "#{expression.inspect} changed" | |
error = "#{message}.\n#{error}" if message | |
assert_equal before, exp.call, error | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment