Ruby on rails 共享上下文中的Rspec it块导致';无法从回溯中找到匹配行';错误

Ruby on rails 共享上下文中的Rspec it块导致';无法从回溯中找到匹配行';错误,ruby-on-rails,ruby,rspec,Ruby On Rails,Ruby,Rspec,我也看到过类似的帖子,但他们的建议并不成功。我只想测试以下方法是否记录了弃用警告,但是,要使其正常工作,我遇到了很多困难make_request是同一类(客户端)中的另一个方法 方法: def get_person(pop_id, person_id) path = 'path_url' data_hash = make_request(path, person_id: person_id, pop_id: pop_id) Rails.logger.warn '#get_perso

我也看到过类似的帖子,但他们的建议并不成功。我只想测试以下方法是否记录了弃用警告,但是,要使其正常工作,我遇到了很多困难
make_request
是同一类(客户端)中的另一个方法

方法:

def get_person(pop_id, person_id)
  path = 'path_url'

  data_hash = make_request(path, person_id: person_id, pop_id: pop_id)
  Rails.logger.warn '#get_person is deprecated.'
  Service::Person.deserialize(data_hash)
end
测试代码:

...
context 'when making a request'
    include_context 'making a GET'
    describe '#get_person' do
        let(:client) { described_class.new }
        let(:path) { 'some/path' }
        let(:person_id) { 'person-1' }
        let(:pop_id) { 'population-1' }

        it_behaves_like 'a client'

        context 'when the service request returns' do
          let(:mock_response) { {} }

          before do
            allow(client).to receive(:make_request)
             .with(path, person_id: person_id, pop_id: pop_id)
             .and_return(mock_response)
          end

          it 'logs a deprecation warning' do
            expect(Rails.logger).to receive(:warn)
            client.get_person(population_id, person_id)
          end
        end
    end

    ...
end
运行上面的测试给了我一个
故障/错误:在控制台中无法从回溯中找到匹配的行
错误。我甚至不知道这个神秘的信息是什么意思。即使在测试描述中放置一个空it块也会导致此错误。简单的解决方案是将这个日志测试在其自己的描述中移出共享上下文,但我希望每个函数只描述一个。如果您能帮助您正确完成此测试,我们将不胜感激。谢谢

试着对内容进行注释,看看是什么导致了错误is@maxpleaner做了一些测试并更新了问题以反映我的发现。基本上,共享上下文中的任何类型的it块都会导致此错误。请尝试对内容进行注释,以查看导致此错误的行is@maxpleaner做了一些测试并更新了问题以反映我的发现。基本上,共享上下文中的任何it块都会导致此错误。