Ben Ruby ile oynuyor ve onu sevmek için bir Java geliştiricisiyim. Ruby'nin metaprogramlama olanakları nedeniyle ünite testlerimin daha temiz hale geldiğini ve kötü alay çerçevelerine ihtiyacım olmadığını anladım. File
sınıfının hizmetlerine ihtiyaç duyan bir sınıfım var ve testimde gerçek dosya sistemime dokunmak istemiyorum. Java'da, Ruby'de sahte nesneler geçirmek için daha kolay "dikişler" yapmak için bazı sanal dosya sistemi kullanacağım. Geldiğim şey, Java dünyasına kıyasla çok güzel görünüyor.Ruby'de bir angajman yapıcılar
@file_class.open(filename)
Ve çağrı ya gerçek gider: benim sınıf içindeki dosyaları açmak gerektiğinde
def initialize(file_class=File)
, o zaman bunu yapabilirsiniz: test altında Benim sınıfımda ben isteğe bağlı bir yapıcı parametresi var Dosya sınıfı veya birim testim durumunda, dosya sistemine dokunmayan sahte bir sınıfa gider. Bunu metaprogramlama ile yapmanın daha iyi bir yolu olmalı.
Evet, bir alay kitaplığı kullanmamayı tercih ederim. Ruby'ye gerçekten ihtiyacın var mı? – auramo
Alaycı bir kütüphaneye ilgimden kaçınma gereği duymuyorum. Mocha sadece sizin için yaptığınız meta programlamayı (yani yöntemleri geçersiz kılmayı) yapıyor. –
@BrianPhillips Saptanan yöntemlerin –