こんばんわ。
rspecの実行結果と実際の結果が合わないので、質問をします。
下記がクラスの定義になります。
class Car attr_accessor :name, :color attr_reader :x, :fuel @@count = 0 def self.count @@count end def initialize(name, color) @name = name @color = color @x = 0 @fuel = 100 @@count += 1 end def info puts "名前:#{self.name}, 色:#{self.color}" # puts "現在の位置: #{self.x}km" # puts "ガソリン量: #{self.fuel}リットル" end def run(distance) if distance > @fuel puts "ガソリンが足りません" return end @x += distance set_fuel(@fuel - distance) end def charge(litre) set_fuel(@fuel + litre) end private def set_fuel(litre) @fuel = litre end end
rspecの記述は下記の通りです。
describe Car do describe '#info' do it 'info is valid' do my_car = Car.new('ゴンフォート', '赤') expect(my_car.info).to eq '名前:ゴンフォート, 色:赤' end end end
エラーメッセージです。
Car #info 名前:ゴンフォート, 色:赤 info is valid (FAILED - 1) Failures: 1) Car#info info is valid Failure/Error: expect(@my_car.info).to eq '名前:ゴンフォート, 色:赤' expected: "名前:ゴンフォート, 色:赤" got: nil (compared using ==) # ./car_spec.rb:7:in `block (3 levels) in <top (required)>' Finished in 0.01744 seconds (files took 0.14312 seconds to load) 1 example, 1 failure Failed examples: rspec ./car_spec.rb:5 # Car#info info is valid
普通に次の通り行っても、メソッドは実行されます。
my_car = Car.new('ゴンフォート', '赤') car.info =>名前:ゴンフォート, 色:赤
なぜ、結果がnilになっているのかが理解できません。
お手数をおかけしますが、ご教授をよろしくおねがいします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/12/06 13:16