Home > article > RSpecでprivateメソッドをテストする

RSpecでprivateメソッドをテストする

Object#send(__send__)ならメソッドの呼び出し制限に関わらずメソッドを呼び出すことが可能なので、privateメソッドもテスト可能。

確か、1.9以降はメソッド呼び出し制限がObject#sendにも影響するとどこかで見た記憶があるのだけど結局そうはなっていないみたい。

1.9.1、1.8.7で確認済み。

ちなみにオマケ。

Pythonはメソッド名の前にアンダースコアを2つけるとprivateなメソッドになるのだけれど、実際のところ別名でメソッドを定義してそちらを呼び出してるっぽい。別名で定義された方はprivateではないので、そちらを呼び出してテストすることが可能。

他にもJavaだったらsetAccessible(True)を実行すればpublicなメソッドに変更されるのでテスト可能。と聞いただけで確認はしていない。

Comments:1

Luba Qunnarath 11-10-25 (Tue) 14:32

I simply have to declare you establish a lot of fantastic points and will probably submit a few suggestions to add in just after a day or two.

Comment Form
Remember personal info

Trackbacks:0

Trackback URL for this entry
http://ukstudio.jp/2009/11/02/testing_private_method/trackback/
Listed below are links to weblogs that reference
RSpecでprivateメソッドをテストする from UKSTUDIO

Home > article > RSpecでprivateメソッドをテストする

Feeds
Meta
Others

Return to page top