我正在努力将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)
答案 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
从测试的角度来看,你给你的函数一个数字,你的函数对其他一些变量做了一些事情。这就是你应该测试的,特别是那些计算的期望。