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 }