Вы можете немного обмануть, сделав мутатор для значения remote_ip в тестовой среде, которая обычно не определяется.
Например, измените класс внутри test / test_helper.rb следующим образом:
class ActionController::TestRequest
def remote_ip=(value)
@env['REMOTE_ADDR'] = value.to_s
end
end
Затем во время тестирования вы можете переназначить:
def test_something
@request.remote_ip = '1.2.3.4'
end
Это можно сделать либо в отдельном тесте, либо в рамках вашей процедуры настройки, где это уместно.
Мне приходилось использовать это раньше при написании функциональных тестов, которые проверяют запрет IP, геолокацию и т. Д.