forked from acunote/assert_same
-
Notifications
You must be signed in to change notification settings - Fork 0
License
adymo/assert_same
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
assert_same =========== 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
About
No description, website, or topics provided.
Resources
License
Stars
Watchers
Forks
Packages 0
No packages published
Languages
- Ruby 100.0%