条件语句和RSpec

时间:2014-10-06 15:13:53

标签: ruby rspec

我正在努力将RSpec与条件语句一起使用。以下代码行的spec文件示例是什么?驱动方法是我试图分解为spec文件。我不确定如何处理条件语句。

class Car

def initialize
  @fuel = 10
  @distance = 0 
end

def drive(miles)
  if (@fuel -= miles/20) >= 0
    @distance += miles
    @fuel -= miles/20
else 
    @distance += @fuel * 20 
    @fuel = 0 
    puts "You're out of gas!"
end
end

def fuel_up
  gallons_needed = 10 - @fuel
  puts "The amount of gallons needed will cost you $#{3.5 * gallons_needed}"
end

def to_s
  puts "I'm a car. I've driven #{@distance} miles and have #{@fuel} gallons of gas left."
end

end

car_a = Car.new
car_b = Car.new
car_a.drive(10)
car_a.to_s
car_b.drive(133)
car_b.to_s
car_b.fuel_up
car_a.fuel_up
car_a.drive(500)

1 个答案:

答案 0 :(得分:2)

我们需要有关如何计算和/或初始化@distance@fuel的信息。

作为一个例子,基于我可以告诉你的代码:

require 'rspec'

describe Car do
  it '#drive' do
    car = Car.new
    car.drive(10)

    expect(car.distance).to eq 10
    expect(car.fuel).to eq 0.5
  end

end

从测试的角度来看,你给你的函数一个数字,你的函数对其他一些变量做了一些事情。这就是你应该测试的,特别是那些计算的期望。