rspec - 在方法调用后检查哈希中的键

时间:2015-08-10 12:47:06

标签: ruby rspec

我有以下方法

def calculate_gpa
  # method code
end

在我的测试中,我有以下内容:

s = Student.new

# some tests

describe "#calculate_gpa" do
  grades = s.calculate_gpa
  it "must add final_grade key/value pair to student hash" do
    grades.each do |grade|
      expect(grade.keys).to include('final_grade')
      expect(grade.values).not_to include(nil)
    end
  end
end

问题是测试密钥的行失败,实际结果包含除final_grade之外的所有散列密钥。当我在irb中调用方法时,打印键final_grade就在那里。

我无法弄清楚我的rspec语法是错误还是我的逻辑,所以任何帮助都会非常感激。我应该注意到我只使用红宝石,没有铁轨。

1 个答案:

答案 0 :(得分:0)

如果您发布Student代码,那将非常有用。

但是,在这种情况下你应该使用let

let(:grades) { s.calculate_gpa }