我是一位Java開發人員,喜歡Ruby。我瞭解到,由於Ruby的元編程設施,我的單元測試變得更乾淨,而且我不需要討厭的嘲笑框架。我有一門課需要File
班的服務,在我的測試中,我不想碰我真正的文件系統。在Java中,我會使用一些虛擬文件系統來更容易的「接縫」來傳遞僞造對象,但是在Ruby中顯然是過度的。與Java世界相比,我所提出的似乎已經非常好。在我的測試類我有一個可選的構造函數參數:Ruby中的嘲諷構造函數
def initialize(file_class=File)
當我需要我的類中打開文件,然後我就可以做到這一點:
@file_class.open(filename)
和呼叫轉移到任何真正的文件類,或者在我的單元測試的情況下,它會轉到一個不接觸文件系統的假類。我知道用metaprogramming必須有更好的方法來做到這一點嗎?
是的,我只是不想使用嘲笑庫。你真的需要Ruby嗎? – auramo 2008-09-16 13:43:47