Skip to content

Instantly share code, notes, and snippets.

@jgn
Created March 7, 2014 20:04
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jgn/9418894 to your computer and use it in GitHub Desktop.
Save jgn/9418894 to your computer and use it in GitHub Desktop.
class UnexpectedOutputError < StandardError; end
class MockLogger
def initialize(expected_indirect_outputs)
@eio = Array(expected_indirect_outputs)
end
def info(s)
expected = @eio.shift
if expected != s
raise UnexpectedOutputError.new("Fail: got #{s}; expected #{expected}")
end
end
end
a, b, c, s = examples[0]
expected_logging = <<LOG.split("\n")
augend: 0
addend: 0
carry: 0
sum: 0
LOG
logger = MockLogger.new(expected_logging) # logger
half_adder = HalfAdder.new(a, b, logger) # setup
begin
half_adder.compute # exercise/verify
puts "Pass"
rescue UnexpectedOutputError => e
puts e.messages
end
adder = nil # teardown
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment