README in assert_same-0.3 vs README in assert_same-0.5

- old
+ new

@@ -1,10 +1,101 @@ assert_same =========== -Please read the API docs in lib/assert_same.rb +Checks that two strings are same and "magically" replace expected value +with the actual in case the new behavior (and new actual value) is correct. +Support two kind of arguments: string and code block. +String Example: +--------------- +It is better to start with no expected value + + assert_same "foo" + +Then run tests as usual with "rake test". As a result you will see +diff between expected and actual values: + + Failure: + @@ -1,0, +1,1 @@ + +foo + Accept the new value: yes to all, no to all, yes, no? [Y/N/y/n] (y): + +If you accept the new value your test will be automatically modified to + + assert_same "foo", <<-END + foo + END + +Block Example: +-------------- + +assert_same supports code block as argument. If executed block raise exception +exception message is returned as actual value: + + assert_same do + nil+1 + end + +Run tests + + Failure: + @@ -1,0, +1,1 @@ + +Exception NoMethodError: undefined method `+' for nil:NilClass + Accept the new value: yes to all, no to all, yes, no? [Y/N/y/n] (y): + +After new value is accepted + + assert_same(<<-END) do + Exception NoMethodError: undefined method `+' for nil:NilClass + END + nil + 1 + end + +Options: +-------- + + --no-interactive skips all questions and just reports failures + --autoaccept prints diffs and automatically accepts all new actual values + --no-canonicalize turns off expected and actual value canonicalization (see below for details) + +Additional options can be passed during both single test file run and rake test run: + +In Ruby 1.8: + + ruby test/unit/foo_test.rb -- --autoaccept + rake test TESTOPTS="-- --autoaccept" + +In Ruby 1.9: + + ruby test/unit/foo_test.rb --autoaccept + rake test TESTOPTS="--autoaccept" + +Canonicalization: +----------------- + +Before comparing expected and actual strings, assert_same canonicalizes both using these rules: + +- indentation is ignored (except for indentation relative to the first line of the expected/actual string) +- ruby-style comments after "#" are ignored +- empty lines are ignored +- trailing whitespaces are ignored + +You can turn canonicalization off with --no-canonicalize option. This is useful +when you need to regenerate expected test strings. +To regenerate the whole test suite, run: + +In Ruby 1.8: + + rake test TESTOPTS="-- --no-canonicalize --autoaccept" + +In Ruby 1.9: + + rake test TESTOPTS="--no-canonicalize --autoaccept" + + Changelog +--------- +- 0.4: Added support for code blocks as argument - 0.3: Ruby 1.9 is supported - 0.2: Make assert_same useful as a standalone gem. Bugfixes - 0.1: Initial release