Skip to content

Instantly share code, notes, and snippets.

@pinzolo
Created December 16, 2015 01:32
Show Gist options
  • Save pinzolo/563b167a4e4fd89bd2d1 to your computer and use it in GitHub Desktop.
Save pinzolo/563b167a4e4fd89bd2d1 to your computer and use it in GitHub Desktop.
expressionの結果が変化したかどうかを検証するassertion
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