0

假设我在 Ruby 的工作区中有一个可用的方法。有没有我可以使用的命令来恢复方法的完全限定名称?

我正在寻找类似于 Matlab 中的which函数的东西,它为给定的任何参数返回一个明确的名称。

我问是因为我正在 Cucumber 中编写一个需要发送特定 GET 和 POST 请求的测试。我的工作区中同时拥有getpost方法,但我没有自己导入它们,所以我不知道它们来自哪里。我想查看这些方法的文档。为了找到文档,我需要知道它们是在哪个模块中定义的。我正在尝试获取完全限定的名称以找出它们来自哪个模块。

4

1 回答 1

1

我想到了。Andrew Marshall 留下了一条评论,为我指明了正确的方向。

首先我安装了pry,将它包含在我的 gemfile 中并运行bundle install

然后我插入binding.pry我的测试代码。当我运行测试时,这让我陷入了一个撬动会话。

在 pry 会话中,我输入了lscommand,其中列出了我的上下文中的所有变量。我发现getpostRack::Test::Methods#methods.

Rack::Test::Methods#methods: _current_session_names  authorize  basic_authorize  build_rack_mock_session  build_rack_test_session  clear_cookies  current_session  delete  digest_authorize  follow_redirect!  get  head  header  last_request  last_response  options  post  put  rack_mock_session  rack_test_session  request  set_cookie  with_session

因此,找出工作区中方法的 FQN 的一种方法是运行 Pry 的ls命令,然后检查输出。

于 2012-09-04T01:07:03.273 回答