Как я могу проверить, что Foo.bar
вызывается в следующем примере, не проверяя поведение метода bar
(который уже проверен в другом месте)?
# Code
class Alpha
def process
Foo.bar
end
end
Следующая спецификация - это то, что у меня есть до сих пор. К сожалению, этот подход выдает предупреждение «класс уже определен», поскольку Foo уже определен в другом месте моего проекта.
# Spec
let(:alpha) { Alpha.new }
let(:klass) { MiniTest::Mock.new }
subject { alpha.process }
it "calls Foo.bar" do
klass.expect(:bar, '') # Define method call expectation
Foo = klass # Redefine Foo as a mock object
subject # Run method being tested
klass.verify # Confirm method was called
end
Я не хочу, чтобы мой тест зависел от класса Foo
, поскольку это внешняя зависимость, и я не хочу проверять значение ответа Foo.bar
, поскольку оно может произвольно измениться.