0

以下は、RSPEC での私のテストです。それは失敗しています、そして私はその理由を理解できません!バンを自転車でいっぱいにしようとしていますが、他のすべての自転車はステーションに置いておきます。ただし、現時点では、それぞれに 1 つを除くすべてのバイクを削除しています。

let(:van) { Van.new }
let(:bike) { double :bike, broken?: false }
let(:broken_bike) { double :broken_bike, broken?: true }
let(:station) { double :station }

it 'can be filled with broken bikes' do
  station = double :station, { release_x_broken_bikes: broken_bike }
  expect(station).to receive(release_x_broken_bikes: broken_bike)
  van.fill_with_broken_bikes_from station
  expect(van.bike_count).to eq > 2
end

van.rb の関連コード:

def initialize bikes = [], capacity = 10
    @bikes = bikes
    @capacity = capacity
end 

def bike_count 
    @bikes.count
end

def fill_with_broken_bikes_from station
    @bikes = station.release_x_broken_bikes(slots_available)
end

def slots_available
    @capacity - bike_count
end

station.rb のコード:

def broken_bikes
    @bikes.select { |bike| bike.broken? }
end

def release_broken_bike
    @bikes.delete(broken_bikes.first)
end

def release_x_broken_bikes(x)
    broken_bikes[0,x].map{ release_broken_bike}
end
4

1 に答える 1