Ты просто в своем изначальном варианте внутри теста создал инстанс секьюрити и стабил его, а контроллер то как да этого инстанса доберется? Он запускался и создавал свой собственный инстанс секьюрити, на котором уже твои стабы не работали
Failure/Error: if security.via_n3_domain? && !security.private_ip_range? #<Double (anonymous)> received unexpected message :private_ip_range? with (no args)
ну теперь в тесте получаю true (если вызываю subject в дебагере), а в контроллере падает на rescue после (if security.via_n3_domain? && !security.private_ip_range?)