Spec and calling other examples

Hi,

When performing BDD there are few occasions when a certain example (BDD
test) depends on other context/example.

Here is one example:

describe Person do

before do

@person = Person.new
@person.Age = 19

end

it “should be able to vote” do

@person.CanVote().should == true

end

describe “19 years old” do

it “should be able to vote” # does not work

end

end

The context of “19 years old” fails since it requires to put the
“voting” context as a shared example which I don’t want to do. If we can
just call other contexts within the parent context then it would be
great. I think it would be great if the above example just works.

Mohammad A. wrote:

The context of “19 years old” fails since it requires to put the
“voting” context as a shared example which I don’t want to do. If we can
just call other contexts within the parent context then it would be
great. I think it would be great if the above example just works.

I’m not quite sure what you’re expecting in this case.
I can understand if you are expecting the parent context to be passed
down to the child, but the code:

it “should be able to vote” # does not work

Is only saying “here is a description about what I want to test… I’m
getting ready to test something… and … nothing”

I’d imagine based on a conversation we had that you “might” be expecting
the implicit method calling/subject setup mentioned in the post here:

http://blog.davidchelimsky.net/2009/01/13/rspec-1-1-12-is-released/

However, for that, you’d actually need the following syntax (which is
probably using some magic shortcuts behind the scenes):

it { should be_able_to_vote }

You’d also need to add (perhaps monkey-patch if you’re dealing with an
existing C# dll) the method that RSpec will be looking for (namely:
able_to_vote? )

Since you already have CanVote, you could actually just alias it like
this:

class Person
alias_method :able_to_vote?, :CanVote
end

Let us/me know if this helps, and how far you get from here
If you’d like to discuss further personally, please email or direct
message me.
Thanks

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs