我在使用rspec
運行測試時遇到問題。在我的book.rb
文件中,代碼塊通過了給它的所有測試,用於在書籍標題中大寫字(「殺死一隻模仿鳥」,「地獄」)。然而,當我從終端運行rake我反覆得到錯誤信息Rspec測試,ArgumentError:參數數量錯誤(0代表1)
"Failure/Error: @book.title.should == "Inferno"
ArgumentError:
wrong number of arguments (0 for 1)".
我試圖改變PARAMS和刪除標題的方法,但沒有什麼工作,我仍然得到錯誤消息,即使該計劃大寫標題應該如此。謝謝,非常感謝任何幫助!
class Book
attr_accessor :title, :littlewords
def initialize
@littlewords = ["the", "a", "an", "and", "of", "in"]
end
def title
@title
end
def title(lit)
@title = ''
books = lit.split
books.each do |title|
title.capitalize! unless (littlewords.to_s).include?(title)
end
books[0] = books[0].upcase
books.first.capitalize!
books.join(' ')
end
end
s = Book.new
puts s.title("to kill a mockingbird")
puts s.title("inferno")
你的問題是,第二個'title'方法需要一個參數,覆蓋你的第一個'title'方法。我想你想'def title =(lit)',然後用's.title =「來殺死一隻模仿鳥」'同時,第一個'title'不需要,因爲你已經將它設置爲'attr_accessor' –