rspec类方法TestFirst Tutorial Tem转换器

时间:2013-02-12 01:52:46

标签: ruby

从事项目工作并开始失败......以下是规范中的描述:

describe Temperature do
describe "can be constructed with an options hash" do
describe "in degrees fahrenheit" do
  it "at 50 degrees" do
    Temperature.new(:f => 50).in_fahrenheit.should == 50
  end

坚持这一段时间,我认为我的问题与获取参数有关,但无法弄清楚如何。我的代码将结果“nil”而不是50。

 class Temperature
    attr_accessor :f

 def in_fahrenheit
 @f
 end


 end

1 个答案:

答案 0 :(得分:2)

实际上,您并未在任何地方为访问者:f设置值。您应该为此定义自己的构造函数:

class Temperature

  def initialize(args)
    self.f = args[:f]
  end

  attr_accessor :f
  def in_fahrenheit
    f
  end
end


t = Temperature.new(:f => 50)

t.f # => 50
t.in_fahrenheit # => 50