我可以在RSpec中看到模拟的方法的source_location吗?

时间:2018-10-15 21:58:34

标签: rspec-mocks

我有一些有用的库,它们利用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在某个地方保存了它模拟的方法的记录,但是我不记得在哪里。

0 个答案:

没有答案