假设我在Ruby的工作区中有一个可用的方法。是否有我可以使用的命令将恢复该方法的完全限定名称?
我正在寻找类似于Matlab中的which函数的东西,它为它给出的任何参数返回一个明确的名称。
我问,因为我在Cucumber中编写了一个需要发送特定GET和POST请求的测试。我的工作区中有get
和post
方法,但我没有自己导入它们,因此我不知道它们来自何处。我想查看这些方法的文档。为了找到文档,我需要知道它们定义的模块。我正在尝试获取完全限定的名称,以便找出它们来自哪个模块。
答案 0 :(得分:1)
我明白了。安德鲁马歇尔留下了一条评论,指出了我正确的方向。
首先我安装了pry,将其包含在我的gemfile中并运行bundle install
。
然后我将binding.pry
插入到我的测试代码中。当我进行测试时,这让我陷入了撬开的过程。
在pry会话中,我输入了ls
command,其中列出了我上下文中的所有变量。我在get
下找到了post
和Rack::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
命令,然后检查输出。