3

我的应用程序控制器中包含一些第 3 方库。

require 'new_relic/agent/method_tracer'
class ApplicationController < ApplicationController::Base
end

我想在我的其他控制器中使用它,例如在我的 SearchController

class SearchController < ApplicationController
    add_method_tracer :show, 'Custom/FU'
end

我知道,我可以通过 rspec 检查控制器中库提供的方法是否存在:

require 'spec_helper'

describe SearchController do

  it "has newrelic method tracer enabled" do
    SearchController.should respond_to :add_method_tracer
  end
end

但是这个解决方案不会检查正确的方法参数。

我如何确保(通过 rspec 测试)SearchController 具有:

add_method_tracer :show, 'Custom/FU'

行存在,并使用适当的参数调用它?

简单地说,我想要一个测试,当有人意外地从控制器中删除 add_method_tracer 时,它会失败......并且......我想确保使用正确的参数调用该方法。

4

1 回答 1

0

我不知道这个 gem,但我查看了代码,发现它检查它是否已经完成了它应该使用trace_method_exists?.

所以你可以尝试这样的事情:

it "is tracing #show on metric Custom/FU" do
  expect(SearchController.trace_method_exists?(:show, "Custom/FU")).to be_false
end
于 2013-05-19T21:33:13.323 回答