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?
Thanks,
Ramon T.
On Wed, Nov 19, 2008 at 7:17 AM, Ramon T. [email protected]
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?
On Wed, Nov 19, 2008 at 7:55 AM, Ramon T. [email protected]
wrote:
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 T.
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.
If I make it public it solves my question somewhat
Thanks,
Ramon T.
Ahh… yes, you do. Thanks a lot! That definitely answers my question.
Ramon T.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On 19 Nov 2008, at 14:01, David C. wrote:
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
Can I just say that that is a truly great example
Rahoul B.
Web design and development: http://www.3hv.co.uk/
Nottingham Forest: http://www.eighteensixtyfive.co.uk/
Serious Rails Hosting: http://www.brightbox.co.uk/
Lifecast: http://www.madeofstone.net/
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.8 (Darwin)
iEYEARECAAYFAkkkIv4ACgkQu0BNRvjN8xSqWACfRAq1jiaqQnxDfvhdG/F1xy4A
qeMAn11P+WAcY8F7XVENIfMl1BEE9sO5
=Vp0S
-----END PGP SIGNATURE-----
In other words, the object changes its private state to achieve a
publically
visible result (otherwise, why bother?) Test that result.
///ark
In other words, the object changes its private state to achieve a
publically
visible result (otherwise, why bother?) Test that result.
///ark