|
|
|
|
||||||
![]() |
|
|
LinkBack | Outils de la discussion |
|
|
#1 |
|
Messages: n/a
Hébergeur: |
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 == Contact Please mail bugs, suggestions and patches to <mailto:chneukirchen@gmail.com>. Darcs repository ("darcs send" is welcome for patches): http://chneukirchen.org/repos/bacon == Copying Copyright (C) 2007, 2008 Christian Neukirchen <purl.org/net/chneukirchen> Bacon is freely distributable under the terms of an MIT-style license. See COPYING or http://www.opensource.org/licenses/mit-license.php. == Links Behavior-Driven Development:: <http://behaviour-driven.org/> RSpec:: <http://rspec.rubyforge.org/> test/spec:: <http://test-spec.rubyforge.org/> Christian Neukirchen:: <http://chneukirchen.org/> Happy hacking and have a nice day, Christian Neukirchen -- a954aeccc86fd0d5efae824516de15b64b834a2f bacon-0.9.0.tar.gz 7d9de531251342da11af7d67522b018b248707b4 bacon-0.9.0.gem |
|
|
|
#2 |
|
Messages: n/a
Hébergeur: |
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 |
|
|
|
#3 |
|
Messages: n/a
Hébergeur: |
On Jan 7, 2008 2:50 PM, 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 > > == Contact > > Please mail bugs, suggestions and patches to > <mailto:chneukirchen@gmail.com>. > > Darcs repository ("darcs send" is welcome for patches): > http://chneukirchen.org/repos/bacon > > == Copying > > Copyright (C) 2007, 2008 Christian Neukirchen <purl.org/net/chneukirchen> > > Bacon is freely distributable under the terms of an MIT-style license. > See COPYING or http://www.opensource.org/licenses/mit-license.php. > > == Links > > Behavior-Driven Development:: <http://behaviour-driven.org/> > RSpec:: <http://rspec.rubyforge.org/> > test/spec:: <http://test-spec.rubyforge.org/> > > Christian Neukirchen:: <http://chneukirchen.org/> > Is this a replacement for test/spec, or is test/spec bacon's big brother? - rob |
|
|
|
#4 |
|
Messages: n/a
Hébergeur: |
On 2008-01-07, Rob Sanheim <rsanheim@gmail.com> wrote:
>> Today I'm proud to release Bacon 0.9. >> >> = Bacon -- a small RSpec clone. >> >> Bacon is a small RSpec clone weighing less than 300 LoC but >> nevertheless providing all essential features. > > Is this a replacement for test/spec, or is test/spec bacon's big brother? It is not a replacement for test/spec, but a reimplementation of the ideas behind it in a compact way. It does not use Test::Unit. It is not completely compatible to test/spec or RSpec, but suites are reasonably easy to port. > - rob |
|
|
|
#5 |
|
Messages: n/a
Hébergeur: |
It's unfortunate you didn't name contexts strips and examples bits.
You really could've played up this bacon thing. ![]() I like the way this looks. It plays nice with some specs I was working on. --Jeremy On Jan 7, 2008 3:50 PM, Christian Neukirchen <chneukirchen@gmail.com> wrote: > On 2008-01-07, Rob Sanheim <rsanheim@gmail.com> wrote: > >> Today I'm proud to release Bacon 0.9. > >> > >> = Bacon -- a small RSpec clone. > >> > >> Bacon is a small RSpec clone weighing less than 300 LoC but > >> nevertheless providing all essential features. > > > > Is this a replacement for test/spec, or is test/spec bacon's big brother? > > It is not a replacement for test/spec, but a reimplementation of the > ideas behind it in a compact way. > > It does not use Test::Unit. > > It is not completely compatible to test/spec or RSpec, but suites are > reasonably easy to port. > > > - rob > > -- http://www.jeremymcanally.com/ My books: Ruby in Practice http://www.manning.com/mcanally/ My free Ruby e-book http://www.humblelittlerubybook.com/ My blogs: http://www.mrneighborly.com/ http://www.rubyinpractice.com/ |
|
|
|
#6 |
|
Messages: n/a
Hébergeur: |
On 2008-01-07, Jeremy McAnally <jeremymcanally@gmail.com> wrote:
> It's unfortunate you didn't name contexts strips and examples bits. > You really could've played up this bacon thing. ![]() ![]() Lovely idea. > I like the way this looks. It plays nice with some specs I was working on. Thank you. > --Jeremy |
|
|
|
#7 |
|
Messages: n/a
Hébergeur: |
Christian Neukirchen wrote:
> On 2008-01-07, Jeremy McAnally <jeremymcanally@gmail.com> wrote: >> It's unfortunate you didn't name contexts strips and examples bits. >> You really could've played up this bacon thing. ![]() > > ![]() > Lovely idea. mmmm, chunky! -- vjoel : Joel VanderWerf : path berkeley edu : 510 665 3407 |
|
|
|
#8 |
|
Messages: n/a
Hébergeur: |
Thanks for finally gemming it up! I just started writing the specs for
Halcyon and was really distraught over using RSpec or Bacon. Very cool and very good timing. Also, again, I think this is a very cool name considering its inspiration. Cheers, Matt |
|
|
|
#9 |
|
Messages: n/a
Hébergeur: |
On 2008-01-07, Matt Todd <chiology@gmail.com> wrote:
> Thanks for finally gemming it up! I just started writing the specs for > Halcyon and was really distraught over using RSpec or Bacon. Very cool > and very good timing. > > Also, again, I think this is a very cool name considering its inspiration. Okay, time to admit that quote was not *really* the inspiration... :-) Bacon in German is Speck, which is written and sounds like spec. > Cheers, > Matt |
|
|
|
#10 |
|
Messages: n/a
Hébergeur: |
On Jan 7, 2008 3:50 PM, Christian Neukirchen <chneukirchen@gmail.com> wrote:
> On 2008-01-07, Rob Sanheim <rsanheim@gmail.com> wrote: > >> Today I'm proud to release Bacon 0.9. > >> > >> = Bacon -- a small RSpec clone. > >> > >> Bacon is a small RSpec clone weighing less than 300 LoC but > >> nevertheless providing all essential features. > > > > Is this a replacement for test/spec, or is test/spec bacon's big brother? > > It is not a replacement for test/spec, but a reimplementation of the > ideas behind it in a compact way. > > It does not use Test::Unit. > > It is not completely compatible to test/spec or RSpec, but suites are > reasonably easy to port. > > > - rob Neat...I checked out the code and it looks very nice and slim. My only concern is converting our many thousands of lines of specs written in test/spec if bacon is where all the goodness is going to be happening =). - Rob http://robsanheim.com http://thinkrelevance.com |
|
|
|
#11 |
|
Messages: n/a
Hébergeur: |
> Okay, time to admit that quote was not *really* the inspiration... :-)
> > Bacon in German is Speck, which is written and sounds like spec. That makes it even better! ![]() |
|
|
|
#12 |
|
Messages: n/a
Hébergeur: |
On 2008-01-07, Rob Sanheim <rsanheim@gmail.com> wrote:
> Neat...I checked out the code and it looks very nice and slim. > > My only concern is converting our many thousands of lines of specs > written in test/spec if bacon is where all the goodness is going to be > happening =). test/spec has a bigger userbase already, and I try to keep bacon rather small. (Still, it has everything you need, really.) IMO, a stable spec API is more useful than a featureful, but always moving one. I'll make test/spec bacon compatible in the long term, not the other way round. (That is, bacon-the-API will be really stable, so you can run your specs with test/spec, bacon or taptap (to be released).) > - Rob -- Christian Neukirchen <chneukirchen@gmail.com> http://chneukirchen.org |
|
|
|
#13 |
|
Messages: n/a
Hébergeur: |
On Jan 8, 2008 4:50 AM, Christian Neukirchen <chneukirchen@gmail.com> wrote:
[snip] > Happy hacking and have a nice day, Thanks a lot, bacon rocks! ^ manveru |
|
![]() |
| Outils de la discussion | |
|
|