/ruby_comment_tester

Write and run tests from your Ruby code comments

Primary LanguageRubyOtherNOASSERTION

# Copyright (c) 2013, Michael H. Buselli
# See LICENSE for details.  All other rights reserved.
#
# ruby_comment_tester works by auto-generating Ruby test-unit files from
# the comments of a Ruby program.  The idea is that you mimic what you
# would type into irb that could provide a test.  In doing so, you write
# both a test and document the behavior of your program or method in the
# same place.  Some example test comments are as follows:

# Code and assertions in the same comment block are grouped into
# a single test.
#
# irb> a = "123"
# irb> b = a.split(/2/)
# => ["1", "3"]
#
# irb> b.map(&:to_i).inject(0) { |s, x| s + x } + 38
# => 42

# Variables are not sticky between tests, and you can also test for
# exceptions or thrown objects with raises=> and throws=>.
#
# irb> a
# raises=> NameError
# irb> throw :catch_me
# throws=> :catch_me

# Sometimes you have to initialize something for your code or tests to
# work.  Use irb-setup> for that.
#
# irb-setup> puts "This runs outside the tests before code or tests are loaded."
# irb> [:hello, :world].map { |s| s.to_s.capitalize }.join(" ")
# => "Hello World"

# You can comment out tests with double hashes of any sort.
#
# # irb> this won't run
# # => foo
## irb> neither does this
## => bar

# You can run the above tests by running this program on itself.