Предположим, что у нас есть объект, который имеет вертикальную зависимость от другого Ста зависимые объекты
class Ship
def initialize
...
end
def launch
ShipLauncher.new(self, platform: platform)
end
end
class ShipLauncher
def initialize(ship, platform:)
...
end
end
И мы хотим, чтобы проверить:
it do
allow(ShipLauncher).to receive(:new)
ship = Ship.new
ship.launch
expect(ShipLauncher).to have_received(:new).with(ship, platform: 'x')
end
До сих пор все кажется хорошо, но если мы меняем класс ShipLauncher следующим образом:
class ShipLauncher
def initialize(ship, platform_number:)
...
end
end
Тест пройдет через en это не должно потому, что класс ShipLauncher ожидает другого параметра. Что я делаю неправильно? Я должен проверить его с помощью теста интеграции? Что произойдет, если класс ShipLauncher скрывает большую сложность? Я должен заглушить все его зависимости?