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

时间:2019-04-24 10:11:46

标签: ruby-on-rails ruby unit-testing rspec

我有一个服务方法

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

1 个答案:

答案 0 :(得分:2)

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

source