У меня есть короткий метод, который не принимает никаких аргументов и возвращает хэш локальных IP-адресов в виде строки в качестве ключей с истинным в качестве значения:Как мне высмеять метод «Socket» с помощью MiniTest?
def self.local_ips
# puts 'Getting ip addresses for this computer...'
local_ips = {}
Socket.ip_address_list.each do |address|
ip_string = address.ip_address
ip_string.sub!(/\%.*$/, '') # Removes interface from end of some IP's
local_ips[IPAddr.new(ip_string).to_s] = true
end
return local_ips
end
Это работает правильно, правильно определяется им работает, как ожидалось , но я хотел бы иметь спецификацию, которая проверяет этот метод. Проблема в том, что Socket.ip_address_list
будет возвращаться по-разному на каждой машине, на которой он включен. Мне было интересно, есть ли способ использовать MiniTest, чтобы высмеять ответ Socket.ip_address_list
, чтобы этот метод можно было протестировать на любой машине, не опасаясь отказа из-за различий, связанных с локальной машиной.
Любая помощь была бы принята с благодарностью.
Спасибо!