単体テストを作成するときに、initialize
メソッドを呼び出さずにクラスをインスタンス化する必要がある場合があります。たとえば、コンストラクターが他のクラスをインスタンス化する場合は、とにかくスタブに置き換えます。例えば:
class SomeClassThatIWillTest
def initialize
@client = GoogleAnalyticsClient.new
@cache = SuperAdvancedCacheSystem.new
end
# ...
end
テストでは、おそらく と の両方をスタブに置き換える@client
ので@cache
、コンストラクターが呼び出されないようにしたいと思います。それを助けることができる黒魔術はありますか?