vendredi 10 juin 2016

Undefined method '...' for NilClass

I am very confused and appreciate there is a lot on here about this particular error, but I've had a look and can't see anything similar so here goes:

I have two simple classes:

class Bicycle

  def initialize(vehicle_mover: )
    @vehicle_mover = vehicle_mover
  end

  def move
    vehicle_mover.move_bicycle
  end

  private

  attr_reader :vehicle_mover

end

and

class Car

  def initialize(vehicle_mover: )
    @vehicle_mover = vehicle_mover
  end

  def move
    vehicle_mover.move_car
  end

  private

  attr_reader :vehicle_mover

end

Then I have two simple specs for them:

require 'bicycle'

describe Bicycle do

  subject(:bicycle) { described_class.new(vehicle_mover: vehicle_mover) }

  let(:vehicle_mover) { double(:vehicle_mover, move_bicycle: 2) }

  describe '#move' do

    it 'returns 2' do
      expect(bicycle.move).to eq(2)
    end
  end
end

and

require 'car'

describe Car do

  subject(:car) { described_class.new(vehicle_mover: vehicle_mover) }

  let(:vehicle_mover) { double(:vehicle_mover, move_car: 6) }

  describe '#move' do

    it 'returns 6' do
      expect(car.move).to eq(6)
    end
  end
end

Both doing pretty much the same thing (I know this isn't DRY, and I welcome suggestions to improve it).

Bicycle's test passes.

Car's test returns:

undefined method `move_car' for nil:NilClass

What am I missing here?

Aucun commentaire:

Enregistrer un commentaire