PHWinfo banniere

Titres
PORTAIL ANNUAIRE ARTICLES COMPARATEUR HÉBERGEURS DEVIS FORUMS RÉDUCTEUR D'URL
Précédent   PHWinfo > Autres forums > Forum Programmation & Conception > comp.lang.ruby > [ANN] Bacon 0.9, a small RSpec clone
S'inscrire FAQ Membres Recherche Messages du jour Marquer les forums comme lus
[ANN] Bacon 0.9, a small RSpec clone

Réponse
 
LinkBack Outils de la discussion
Vieux 07/01/2008, 19h44   #1
Christian Neukirchen
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut [ANN] Bacon 0.9, a small RSpec clone

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
  Réponse avec citation
Vieux 07/01/2008, 19h58   #2
hemant
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: [ANN] Bacon 0.9, a small RSpec clone

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

  Réponse avec citation
Vieux 07/01/2008, 20h23   #3
Rob Sanheim
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: [ANN] Bacon 0.9, a small RSpec clone

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

  Réponse avec citation
Vieux 07/01/2008, 20h40   #4
Christian Neukirchen
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: [ANN] Bacon 0.9, a small RSpec clone

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

  Réponse avec citation
Vieux 07/01/2008, 21h01   #5
Jeremy McAnally
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: [ANN] Bacon 0.9, a small RSpec clone

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/

  Réponse avec citation
Vieux 07/01/2008, 21h06   #6
Christian Neukirchen
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: [ANN] Bacon 0.9, a small RSpec clone

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

  Réponse avec citation
Vieux 07/01/2008, 21h45   #7
Joel VanderWerf
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: [ANN] Bacon 0.9, a small RSpec clone

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

  Réponse avec citation
Vieux 07/01/2008, 21h47   #8
Matt Todd
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: [ANN] Bacon 0.9, a small RSpec clone

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

  Réponse avec citation
Vieux 07/01/2008, 22h06   #9
Christian Neukirchen
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: [ANN] Bacon 0.9, a small RSpec clone

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

  Réponse avec citation
Vieux 07/01/2008, 22h22   #10
Rob Sanheim
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: [ANN] Bacon 0.9, a small RSpec clone

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

  Réponse avec citation
Vieux 07/01/2008, 23h25   #11
Matt Todd
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: [ANN] Bacon 0.9, a small RSpec clone

> 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!

  Réponse avec citation
Vieux 08/01/2008, 10h27   #12
Christian Neukirchen
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: [ANN] Bacon 0.9, a small RSpec clone

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
  Réponse avec citation
Vieux 08/01/2008, 10h55   #13
Michael Fellinger
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: [ANN] Bacon 0.9, a small RSpec clone

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

  Réponse avec citation
Réponse


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Fuseau horaire GMT +1. Il est actuellement 07h54.


Édité par : vBulletin® version 3.7.3
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0 RC5 Tous droits réservés.
Version française #16 par l'association vBulletin francophone
PHWinfo est un site Éducation Sans Frontières ©2000-2008
Ad Management by RedTyger
©Tous droits réservés par les parties respectives
Page generated in 0,27520 seconds with 21 queries