【发布时间】:2012-03-28 00:29:35
【问题描述】:
我有一个 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')。 如果我使用参数“存款”添加另一个期望,则测试通过。但我想知道是否有任何方法可以让我专注于使用 'withdraw' 参数的调用(因为其他调用与此测试用例无关)。
【问题讨论】:
标签: ruby-on-rails ruby ruby-mocha