[rspec-users] specs on private methods

barsalou barjunk at attglobal.net
Thu Jan 10 14:50:49 EST 2008

It's interesting that this thread has started because I just ran into 
this problem.

The error I got was:

NoMethodError in 'Signup she be a valid mac address'
protected method `normalize_mac' called for #<Signup:0x408c0434>

Here's the spec:

describe Signup do
  before(:each) do
    @signup = Signup.new

  it "she be a valid mac address" do
     @signup.mac_address = "00-11-22-33-44-55-66"
     normalized = @signup.normalize_mac(@signup.mac_address)
     @signup.mac_address.should == normalized

I have a model that has mac_address attribute.  In the before 
validation, I wanted to make the mac address have colons(:) instead of 
whatever the user typed in which could have spaces between, dashes, 
nothing at all.

My thought was to just remove all of those special characters validate 
it against a regex then if it passed the regex check produce the mac 
address with the colons included.

And, if I understand it properly, Pat's statement is saying that I 
really shouldn't be protecting that method...which would fix my problem.

So my question is then, how do you know when to use protected and 
private or do I just do what Rick suggested and use send?

I just realized this isn't really an rspec question...so I'll just move along.

Mike B.

This message was sent using IMP, the Internet Messaging Program.

More information about the rspec-users mailing list