Руби Коанс: Где кавычки в этом возвращаемом значении?
Я работаю над следующим Руби Коаном:
class Dog7
attr_reader :name
def initialize(initial_name)
@name = initial_name
end
def get_self
self
end
def to_s
__
end
def inspect
"<Dog named '#{name}'>"
end
end
def test_inside_a_method_self_refers_to_the_containing_object
fido = Dog7.new("Fido")
fidos_self = fido.get_self
assert_equal "<Dog named 'Fido'>", fidos_self
end
def test_to_s_provides_a_string_version_of_the_object
fido = Dog7.new("Fido")
assert_equal __, fido.to_s
end
Я пытаюсь заполнить первую половину первого assert_equal. Этот код выдает ошибку:
<"<Dog named 'Fido'>"> expected but was <<Dog named 'Fido'>>.
Проблема в том, что я застрял на том, как сопоставить возвращаемое значение. Это выглядит как строковое литеральное возвращаемое значение, но я не знаю, как выразить это без использования кавычек и / или обратной косой черты. Ничто из того, что я пытаюсь сделать, не работает.
Помогите?
3 ответа
Посмотрев на это некоторое время, я снова понял, куда они идут с уроком. Изменение первого утверждения на "assert_equal fido, fidos_self" позволило пройти тест. Я был сброшен ошибкой, выдававшей тот же вывод, что и метод проверки, без кавычек. Спасибо, что помогли мне пройти через это.
изменения test_inside_a_method_self_refers_to_the_containing_object
к следующим работам:
def test_inside_a_method_self_refers_to_the_containing_object
fido = Dog7.new("Fido")
fidos_self = fido.get_self
assert_equal "<Dog named 'Fido'>", fidos_self.inspect # .inspect added.
end
Хорошо, были ли еще пробелы для заполнения? У меня есть ответ, но, кажется, вы уже заполнили пробел неправильно.
Ошибка является ошибкой объекта типа; первый элемент является строковым типом, а второй - типом Dog7. Решение состоит в том, чтобы соответствовать типам соответственно.
Проверьте возвращаемые значения:
fidos_self.is_a?(String)
fidos_self.is_a?(Dog7)
fidos.is_a?(Dog7)
fidos_self
fidos