saya biasa pake test-spec yang sepertinya bermetamorph menjadi bacon. saya
lebih suka yang ini ketimbang rspec soalnya lebih gampang nulis titik
daripada underscore :-) juga lebih mudah dibaca. Salam kenal untuk Arie.
--Rian
On Jan 14, 2008 4:50 AM, Rie! <[EMAIL PROTECTED]> wrote:
> 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]<chneukirchen%40gmail.com>
> >
> Date: 8 Jan 2008 03:50
> Subject: [ANN] Bacon 0.9, a small RSpec clone
> To: ruby-talk ML <[EMAIL PROTECTED] <ruby-talk%40ruby-lang.org>>
>
> 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] <chneukirchen%40gmail.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
>
> --
> r9 = { name: Rie!, ym: riyari3, skype: rubyninja,
> li: http://linkedin.com/in/ariekeren,
> fb: http://profile.to/ariekeren,
> blog: http://tinyurl.com/2bjgvn }
>
>
[Non-text portions of this message have been removed]