Hi Chris,

On Jan 8, 2008 1:20 AM, Christian Neukirchen <chneukirchen / gmail.com> wrote:
> Hello,
>
> Today I'm proud to release Bacon 0.9.
>
> = Bacon -- a small RSpec clone.
>
>    "Truth will sooner come out from error than from confusion."
>                                                ---Francis Bacon
>
> Bacon is a small RSpec clone weighing less than 300 LoC but
> nevertheless providing all essential features.
>
> == Whirl-wind tour
>
>     require 'bacon'
>
>     describe 'A new array' do
>       before do
>         @ary = Array.new
>       end
>
>       it 'should be empty' do
>         @ary.should.be.empty
>         @ary.should.not.include 1
>       end
>
>       it 'should have zero size' do
>         @ary.size.should.equal 0
>         @ary.size.should.be.close 0.1, 0.5
>       end
>
>       it 'should raise on trying fetch any index' do
>         lambda { @ary.fetch 0 }.
>           should.raise(IndexError).
>           message.should.match(/out of array/)
>
>         # Alternatively:
>         should.raise(IndexError) { @ary.fetch 0 }
>       end
>
>       it 'should have an object identity' do
>         @ary.should.not.be.same_as Array.new
>       end
>
>       # Custom assertions are trivial to do, they are lambdas returning a
>       # boolean vale:
>       palindrome = lambda { |obj| obj == obj.reverse }
>       it 'should be a palindrome' do
>         @ary.should.be.a palindrome
>       end
>
>       it 'should have super powers' do
>         should.flunk "no super powers found"
>       end
>     end
>
> Now run it:
>
>     $ bacon whirlwind.rb
>     A new array
>     - should be empty
>     - should have zero size
>     - should raise on trying fetch any index
>     - should have an object identity
>     - should be a palindrome
>     - should have super powers [FAILED]
>
>     Bacon::Error: no super powers found
>         ./whirlwind.rb:39: A new array - should have super powers
>         ./whirlwind.rb:38
>         ./whirlwind.rb:3
>
>     6 specifications (9 requirements), 1 failures, 0 errors
>
> If you want shorter output, use the Test::Unit format:
>
>     $ bacon -q whirlwind.rb
>     .....F
>     Bacon::Error: no super powers found
>         ./whirlwind.rb:39: A new array - should have super powers
>         ./whirlwind.rb:38
>         ./whirlwind.rb:3
>
>     6 tests, 9 assertions, 1 failures, 0 errors
>
> It also supports TAP:
>
>     $ bacon -p whirlwind.rb
>     ok 1        - should be empty
>     ok 2        - should have zero size
>     ok 3        - should raise on trying fetch any index
>     ok 4        - should have an object identity
>     ok 5        - should be a palindrome
>     not ok 6    - should have super powers: FAILED
>     # Bacon::Error: no super powers found
>     #   ./whirlwind.rb:39: A new array - should have super powers
>     #   ./whirlwind.rb:38
>     #   ./whirlwind.rb:3
>     1..6
>     # 6 tests, 9 assertions, 1 failures, 0 errors
>
>     $ bacon -p whirlwind.rb | taptap -q
>     Tests took 0.00 seconds.
>     FAILED tests 6
>        6) should have super powers: FAILED
>
>     Failed 1/6 tests, 83.33% okay.
>
> (taptap is available from http://chneukirchen.org/repos/taptap/)
>
> == Implemented assertions
>
> * should.<predicate> and should.be.<predicate>
> * should.equal
> * should.match
> * should.be.identical_to / should.be.same_as
> * should.raise(*exceptions) { }
> * should.change { }
> * should.throw(symbol) { }
> * should.satisfy { |object| }
>
> == Added core predicates
>
> * Object#true?
> * Object#false?
> * Proc#change?
> * Proc#raise?
> * Proc#throw?
> * Numeric#close?
>
> [... for more documentation see README ...]
>
> == Object#should
>
> You can use Object#should outside of contexts, where the result of
> assertion will be returned as a boolean.  This is nice for
> demonstrations, quick checks and doctest tests.
>
>     >> require 'bacon'
>     >> (1 + 1).should.equal 2
>     => true
>     >> (6*9).should.equal 42
>     => false
>
> == Where can I get it?
>
> You can download Bacon 0.2 at
>
>         http://chneukirchen.org/releases/bacon-0.9.0.tar.gz
>                 http://rubyforge.org/projects/testspec
>
> Alternatively, you can checkout from the development repository with:
>
>            darcs get http://chneukirchen.org/repos/bacon
>
> (Patches using "darcs send" are most welcome.)
>
> == Installing with RubyGems
>
> A Gem of Bacon is available.  You can install it with:
>
>     gem install bacon
>
> I also provide a local mirror of the gems (and development snapshots)
> at my site:
>
>     gem install bacon --source http://chneukirchen.org/releases/gems
>

Is it compatible with Test::Unit like Test/Spec ?



-- 
Let them talk of their oriental summer climes of everlasting
conservatories; give me the privilege of making my own summer with my
own coals.

http://gnufied.org