Могу ли я увидеть source_location метода, смоделированного в RSpec? - PullRequest
0 голосов
/ 16 октября 2018

У меня есть несколько полезных библиотек, которые используют Method#source_location, чтобы сообщить мне, где определен метод.

@account.puts_location(:transactions)

# => STDOUT
/path/to/calling_file.rb:60:in `calling_method'
  #<Method: Account#transactions> <= /path/to/app/models/account.rb:218
# (it then goes on to call the method)

Это все очень хорошо, но если у меня есть метод, смоделированный в RSpec (Я использую 3.6), вместо этого я получаю местоположение некоторого кода RSpec:

/path/to/app/models/account.rb:221:in `block in transactions'
  #<Method: RemoteClient.transactions> <= /path/to/gems/rspec-mocks-3.6.0/lib/rspec/mocks/method_double.rb:63

Есть ли способ, которым я могу

  1. определить, смоделирован ли метод или нети если да, то
  2. возвращает местоположение кода макета?

Кажется, я помню, что RSpec хранит регистр методов, которые он где-то смоделировал, но я могуне помню где.

...