[rspec-users] Testing on enter state

David Chelimsky dchelimsky at gmail.com
Wed Nov 19 09:01:53 EST 2008


On Wed, Nov 19, 2008 at 7:55 AM, Ramon Tayag <ramon.tayag at gmail.com> wrote:
> On Wed, Nov 19, 2008 at 9:52 PM, David Chelimsky <dchelimsky at gmail.com> wrote:
>> On Wed, Nov 19, 2008 at 7:17 AM, Ramon Tayag <ramon.tayag at gmail.com> wrote:
>>> I was reading some old posts on how we shouldn't test private methods,
>>> but there seemed to be an exception for states.
>>>
>>> When my model enters a state, a method is executed. (:on => Proc ...)
>>> I just want to test this method.  I couldn't find much material on it.
>>>  How can I go about this?
>>
>> While there are always exceptions to guidelines, I've never seen a
>> general exception to "don't test privates" for states.
>>
>> Are you averse to just going at this from the public API?

> Not sure if I'm understanding right, but no, I can make the method
> public -- I just got used to methods, that aren't (or don't need to
> be) called by anything but its owner, being private.

I didn't mean make the methods public. I meant use the public API.

For example, this:

describe Dog do
  it "should increase its heart rate when the postman arrives" do
    dog = Dog.new
    lambda {dog.see Postman.new}.should change{dog.heartrate}.by(10)
  end
end

rather than this:

describe Dog do
  it "should transition to an agitated state when the postman arrives" do
    dog = Dog.new
    dog.should_receive(:transition_to).with(:agitated)
    dog.see Postman.new
  end
end

Make sense?

>
> If I make it public it solves my question somewhat :)
>
> Thanks,
> Ramon Tayag


>>
>>>
>>> Thanks,
>>> Ramon Tayag
>>> _______________________________________________
>>> rspec-users mailing list
>>> rspec-users at rubyforge.org
>>> http://rubyforge.org/mailman/listinfo/rspec-users
>>>
>> _______________________________________________
>> rspec-users mailing list
>> rspec-users at rubyforge.org
>> http://rubyforge.org/mailman/listinfo/rspec-users
>>
> _______________________________________________
> rspec-users mailing list
> rspec-users at rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users
>


More information about the rspec-users mailing list