实际使用实例变量测试方法的Rspec

问题描述 投票:-1回答:1

我有一个服务方法

class Service
  def maximum_match
    max = @hash.values.max
    Hash[@hash.select { |_k, v| v == max }]
  end
end

我的测试就像

context 'Finding tags count' do    
    it 'counts tags and returns maximum match' do      
      service = Service.new     
      expect(service.maximum_match).to eq some_result
    end
  end

如何通过任何值@hash来运行我的测试?

错误是NoMethodError:undefined method 'values' for nil:NilClass

ruby-on-rails ruby unit-testing rspec
1个回答
2
投票

忍者,你可以在service.instance_variable_set(@hash, your_value)线上方使用expect

source

© www.soinside.com 2019 - 2024. All rights reserved.