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