Gmail Calendar Documents Reader Web more »
Recently Visited Groups | Help | Sign in
Google Groups Home
Bacon 1.0, a small RSpec clone
There are currently too many topics in this group that display first. To make this topic appear first, remove this option from another topic.
There was an error processing your request. Please try again.
flag
  2 messages - Collapse all  -  Translate all to Translated (View all originals)
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Followup To:
Add Cc | Add Followup-to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers you hear
 
Christian Neukirchen  
View profile  
 More options Jul 6 2008, 12:18 pm
Newsgroups: comp.lang.ruby
From: Christian Neukirchen <chneukirc...@gmail.com>
Date: Sun, 6 Jul 2008 18:18:13 +0200 (CEST)
Local: Sun, Jul 6 2008 12:18 pm
Subject: [ANN] Bacon 1.0, a small RSpec clone
Hello,

Today I'm proud to release Bacon 1.0.

= Bacon -- small RSpec clone.

   "Truth will sooner come out from error than from confusion."
                                               ---Francis Bacon

Bacon is a small RSpec clone weighing less than 350 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 ...]

== Where can I get it?

You can download Bacon 1.0 at

        http://chneukirchen.org/releases/bacon-1.0.0.tar.gz
                http://rubyforge.org/projects/test-spec

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

== Thanks to

* Michael Fellinger, for fixing Bacon for 1.9 and various improvements.
* Gabriele Renzi, for implementing Context#should.
* James Tucker, for the autotest support
* everyone contributing bug fixes.

== History

* January 7, 2008: First public release 0.9.

* July 6th, 2008: Second public release 1.0.
  * Add Context#should as a shortcut for Context#it('should ' + _).
  * describe now supports multiple arguments for better organization.
  * Empty specifications are now erroneous.
  * after-blocks run in the case of exceptions too.
  * Autotest support.
  * Bug fixes.

== Contact

Please mail bugs, suggestions and patches to
<mailto:chneukirc...@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
--
261f3fb19795897f13913778685bba751ab6085b  bacon-1.0.0.tar.gz
2d2049b8ffcf81300bdd34b6b88c397c57219091  bacon-1.0.0.gem


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
James Britt  
View profile  
 More options Jul 6 2008, 12:55 pm
Newsgroups: comp.lang.ruby
From: James Britt <james.br...@gmail.com>
Date: Sun, 6 Jul 2008 11:55:34 -0500
Local: Sun, Jul 6 2008 12:55 pm
Subject: Re: [ANN] Bacon 1.0, a small RSpec clone

Christian Neukirchen wrote:
> Hello,

> Today I'm proud to release Bacon 1.0.

Sweet.  Well done!

--
James Britt

www.happycamperstudios.com   - Wicked Cool Coding
www.jamesbritt.com           - Playing with Better Toys
www.ruby-doc.org             - Ruby Help & Documentation
www.rubystuff.com            - The Ruby Store for Ruby Stuff


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
End of messages
« Back to Discussions « Newer topic     Older topic »

Create a group - Google Groups - Google Home - Terms of Service - Privacy Policy
©2009 Google