Я хочу заглушить метод space_available_mb в SubmissionsController, чтобы он возвращал 5. Это не работает. Возвращает правильное пространство на реальном жестком диске.
если space_available_mb
закомментирован, генерируется ошибка ожидания, что означает, что should_receive
работает правильно. Тем не менее, он не возвращает 5, а действительное число, которое означает, что and_return
по какой-то причине терпит неудачу.
Дальнейшая отладка показывает, что and_return
действительно вызывается, но только после того, как метод запустился и вернул реальное число.
Scenario: Hard Disk Space is low on new submission
Given I am on the new_submission page
And hard disk space is low
Then I should see "Low disk space!"
Given /^hard disk space is low$/ do
SubmissionsController.should_receive(:space_available_mb).and_return(5)
end
class SubmissionsController < ApplicationController
include FileManager
def new
space = space_available_mb
...
end
end
module FileManager
def space_available_mb
...
end
end