ada yang suka nyobain mainan sama rspec juga nggak? kayaknya bacon ini
juga asik deh. sudah lupa saya kapan draft ini saya save yah kemarin
kemarin.... barusan liat babble jadi ingat sama bacon ini habis di
kuping kedengaran mirip sih.

---------- Forwarded message ----------
From: Christian Neukirchen <[EMAIL PROTECTED]>
Date: 8 Jan 2008 03:50
Subject: [ANN] Bacon 0.9, a small RSpec clone
To: ruby-talk ML <[EMAIL PROTECTED]>


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:[EMAIL PROTECTED]>.

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



-- 
r9 = { name: Rie!, ym: riyari3, skype: rubyninja,
li: http://linkedin.com/in/ariekeren,
fb: http://profile.to/ariekeren,
blog: http://tinyurl.com/2bjgvn }

Kirim email ke