2014-12-28 14 views
-2

如何在下列打印方法call get_list()上進行單元測試?Ruby現在可以在打印方法上進行單元測試

assert_equal("["apple", "orange", "pear"]",@list.get_list())結果爲零。

@list = ["apple", "orange", "pear"] 

def get_list() 
    i = 0 
    while (i < list.size()) 
     puts list[i] 
     i = i + 1 
    end 
end 

請有人可以給我小費請

+0

在你的方法中,我認爲你的意思是使用'@ list'而不是'list' – Humza

+0

函數'get_list'應該返回一個列表。打印方法應該被稱爲'print_list'。你的斷言有一個語法錯誤('「[」apple「,」orange「,」pear「]」'沒有任何意義。'get_list'打印出'apple \ norange \ npear \ n' - 你想要什麼_print_還是要真正測試?) – knut

回答

1

Kernel#puts總是返回零。您可能需要使用Kernel#p。例如:

@list = %w[apple orange pear] 
def get_list 
    @list.each { |item| p item } 
end 

根據您認爲#get_list應返回的內容,您可能需要進一步重構該方法。只要確保你返回的是非零的東西,無論是顯式還是隱式。

相關問題