Список URI, зарегистрированных на FakeWeb

Есть ли способ получить список зарегистрированных URI в FakeWeb? Когда я регистрирую один, как:

FakeWeb.register_uri(:get, url, body: expected_response)

Кажется, что он должен быть доступен где-то, так как он отслеживает его внутри, но я не могу отследить его снаружи. Что-то вроде FakeWeb.registered_uris, но очевидно, что это не работает.

1 ответ

Решение

Пытаться

FakeWeb::Registry.instance.uri_map

Это возвращает вложенный хеш с FakeWeb::Responder объекты.

Когда вы регистрируете URI с помощью #register_uri, FakeWeb создает FakeWeb::Responder который содержит URI, который затем хранится в FakeWeb::Registry синглтон.

Наконец, вам нужно перебрать карту результатов и извлечь из нее URI:

FakeWeb::Registry.instance.uri_map.map { |_, v| v.map { |_, w| w } }.flatten.collect { |e| e.uri }.uniq

Надеюсь это поможет.

Другие вопросы по тегам