what does the 'it' do?

T

timr

I came across the following code (see below). As President Clinton
famously said, "It depends on what the definition of 'it' is." I am
hoping someone can explain how 'it' is being used. I have come across
this 'it...string...do' construct before, but I didn't understand it
then either.

describe IowaRubyBrigade do
before do
@irb = Array.new
end

it "should be a user group" do
@irb.should be_a_kind_of(UserGroup)
end

it "should meet monthly" do
@irb.meeting_time.should ==
'second Thursday of every month'
end

it "should be fun" do
@irb.should be_fun
end
end

When you ri it, you get:

----------------------------------
Spec::Example::ExampleGroupMethods#it
it(description=nil, &implementation)
------------------------------------------------------------------------
Creates an instance of Spec::Example::Example and adds it to a
collection of examples of the current example group.


(also known as specify)


But the documentation on Spec is difficult to find. Please educate me.
Thanks,
Tim
 
R

Robert Klemme

I came across the following code (see below). As President Clinton
famously said, "It depends on what the definition of 'it' is." I am
hoping someone can explain how 'it' is being used. I have come across
this 'it...string...do' construct before, but I didn't understand it
then either.

describe IowaRubyBrigade do
before do
@irb = Array.new
end

it "should be a user group" do
@irb.should be_a_kind_of(UserGroup)
end

it "should meet monthly" do
@irb.meeting_time.should ==
'second Thursday of every month'
end

it "should be fun" do
@irb.should be_fun
end
end

When you ri it, you get:

----------------------------------
Spec::Example::ExampleGroupMethods#it
it(description=nil, &implementation)
------------------------------------------------------------------------
Creates an instance of Spec::Example::Example and adds it to a
collection of examples of the current example group.


(also known as specify)


But the documentation on Spec is difficult to find. Please educate me.
Thanks,
Tim

"it" is a method which apparently does what your RI doc says. Most
likely it saves the block somewhere for later execution (i.e. in order
to perform the test).

Fur further information you probably want to look at RSpec
documentation, e.g. http://rspec.info/documentation/

Kind regards

robert
 
C

Corey Haines

[Note: parts of this message were removed to make it a legal post.]

Last winter, I wrote a series of blog posts dissecting the rspec code to see
what describe/it do, as well as what happens when the examples are run. It
is from the perspective of a fairly new ruby person (as I was at the time,
and, I guess, still am), but here's links. I can't say whether they will
help you, or not, since I mostly wrote them for myself:
describe
Part I -
http://www.coreyhaines.com/coreysra...ubyNewbieLooksThroughRSpecPartIIDescribe.aspx
Part II -
http://www.coreyhaines.com/coreysra...bieLooksThroughRSpecPartIIIDescribeRedux.aspx

it
http://www.coreyhaines.com/coreysramblings/2007/12/27/ARubyNewbieLooksThroughRSpecPartIVIt.aspx

run
http://www.coreyhaines.com/coreysramblings/2007/12/27/ARubyNewbieLooksThroughRSpecPartIVRunI.aspx

Hope they can help explain it a bit.
-Corey
 
C

Corey Haines

[Note: parts of this message were removed to make it a legal post.]

Just a follow-up; I started reading through them, and the Part I of describe
is for an older version, so it can be skipped.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,770
Messages
2,569,584
Members
45,075
Latest member
MakersCBDBloodSupport

Latest Threads

Top