Birim sınamaları yazdığım zamanlar, initialize
yönteminin çağrılmasına gerek kalmadan bir sınıfı başlatmam gerekir. Mesela, kurucu yine de saplamalarla değiştireceğim diğer sınıfları başlattığında. Örneğin:Bir Ruby sınıfını başlatmayı çağırmadan başlatmak mümkün mü?
class SomeClassThatIWillTest
def initialize
@client = GoogleAnalyticsClient.new
@cache = SuperAdvancedCacheSystem.new
end
# ...
end
bir testte ben muhtemelen taslakları ile hem @client
ve @cache
yerini alacak, bu yüzden oldukça yapıcı çağrılan asla ediyorum. Bana yardımcı olabilecek herhangi bir kara büyü var mı?
Alt sınıftaki "SomeClassThatIWillTest" alt sınıfını ve üzerine yazma işlemini başlatmaya ne dersiniz? Kara büyü yok;) – tessi
@tessi: Bu gerçekten güzel bir fikir! Ve ışıl ışıl çalıştı. – Hubro
@Codemonkey Hayır Kısmen geri alıyorum - eğer bunları içsel olarak imhadan tahribata (eğer harici modifikasyon olmadan) yönetecekse, enjekte edilmeleri gerekmeyebilir. üzerinde http://programmers.stackexchange.com/questions/130711/should-i-pass-an-object-into-a-constructor-or-instantiate-in-class –