Mocha: Как добавить ожидание метода при нескольких вызовах с разными параметрами

У меня есть действие контроллера Rails для тестирования. В этом действии метод User.can? вызывается несколько раз. с разными параметрами. В одном из тестов для него я хочу убедиться, что User.can?('withdraw') вызывается. Но мне не нужны вызовы User.can? с другими параметрами.

def action_to_be_tested
  ...
  @user.can?('withdraw')
  ...
  @user.can?('deposit')
  ...
end

Я пробовал ниже в тесте:

User.any_instance.expects(:can?).with('withdraw').at_least_once.returns(true)

Но тест завершился неудачно с сообщением о неожиданном вызове User.can?('deposit'). Если я добавлю еще одно ожидание с параметром «депозит», тест пройден. Но мне интересно, есть ли какие-либо способы, чтобы я мог просто сосредоточиться на вызове с параметром «снять» (поскольку другие вызовы не имеют отношения к этому тестовому примеру).

15
задан Innerpeacer 28 March 2012 в 04:24
поделиться