有没有办法在FakeWeb中获取已注册URI的列表?当我注册一个像:
FakeWeb.register_uri(:get, url, body: expected_response)
似乎应该可以在it keeps track of it internally之后的某个地方使用它,但我无法在外部追踪它。像FakeWeb.registered_uris
这样的东西,但显然不起作用。
答案 0 :(得分:4)
尝试
FakeWeb::Registry.instance.uri_map
这将返回带有FakeWeb::Responder
个对象的嵌套哈希。
当您使用#register_uri注册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
希望这有帮助。