2

有没有办法在FakeWeb中获取已注册的 URI 列表?当我注册一个像:

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

似乎它应该在某个地方可用,因为它在内部跟踪它,但我无法在外部跟踪它。类似的东西FakeWeb.registered_uris,但显然这不起作用。

4

1 回答 1

4

尝试

FakeWeb::Registry.instance.uri_map

这将返回一个带有FakeWeb::Responder对象的嵌套散列。

当您使用 #register_uri 注册 uri 时,FakeWeb 会创建一个FakeWeb::Responder保存 uri 的 uri,然后将其存储在FakeWeb::Registry单例中。

您最终必须迭代结果映射并从中获取 uri:

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

希望这可以帮助。

于 2012-07-04T12:03:29.823 回答