lib/colorizer.rb:
#!/usr/bin/env ruby
### Colorizer
class Colorizer
def initialize(options = {})
if options[:max].nil? or options[:min].nil?
raise ArgumentError, "Need to pass in max and min options"
end
end
def colorize(value)
raise ArgumentError, "Kaboom"
end
end
test/test_colorizer.rb:
#!/usr/bin/env ruby
require 'test/unit'
require 'colorizer'
### Colorizer test cases
class TestColorizer < Test::Unit::TestCase
def setup
end
def teardown
end
def test_no_max_in_constructor
assert_raise ArgumentError do
Colorizer.new :min => 0
end
end
def test_no_min_in_constructor
assert_raise ArgumentError do
Colorizer.new :max => 55
end
end
def test_constructor_happy_path
Colorizer.new :min => 0, :max => 55
end
def test_colorize
c = Colorizer.new :min => 0, :max => 55
assert_raise ArgumentError do
c.colorize(5)
end
end
end
Output:
$ autotest
# Testing updated files
+ /usr/bin/ruby -Ilib:test -e '["test/test_colorizer.rb", "test/test_colorizer.rb"].each { |f| load f }' | unit_diff -u
Loaded suite .
Started
Finished in 0.0 seconds.
0 tests, 0 assertions, 0 failures, 0 errors
# Passed
# All passed
# Waiting for changes