У меня возникли проблемы с запуском теста с использованием rspec
. В моем файле book.rb
блок кода передает все тесты, предоставленные ему для заглавных слов в заголовках книг («убить пересмешника», «ад»). Тем не менее, когда я запускаю грабли от терминала я неоднократно получаю сообщение об ошибке,Rspec testing, 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' –