Я начал изучать Ruby неделю назад, и для этой домашней работы на выходных мне нужно защитить уже выполненную функцию, которая выпускает массив хэшей.
Тест выглядит следующим образом:
def test_remove_pet_by_name
remove_pet_by_name(@pet_shop, "Arthur")
pet = find_pet_by_name(@pet_shop,"Arthur")
assert_nil(pet)
end
Я испробовал 3 различных варианта, как показано ниже, но я все еще не нашел идеальный вариант.
def remove_pet_by_name(pet_shop, name)
return @pet_shop[:pets].delete_if {|x| x[:name] == "Arthur"}
end
def find_pet_by_name(pet_shop, name)
pet_shop[:pets].delete(find_pet_by_name(pet_shop, name))
end
Оба варианта имели ту же ошибку, что find_pet_by_name
неопределен
def find_pet_by_name(pet_shop, name)
return @pet_shop[:pets].delete_if[:pets].find {|x| x[:name] == "Arthur"}
end
В этом сообщении была еще одна ошибка, цитата:
Вы имели в виду remove_instance_variable
Что еще можно попробовать?