我该如何测试CanCan的load_and_authorize_resource是否在我的控制器中被调用?

时间:2012-02-24 04:07:20

标签: ruby-on-rails rspec cancan

我有另一个thread尝试使用不同的方法测试资源是否在控制器中加载和授权,但似乎我正在测试CanCan本身。我查看了CanCan的load_and_authorize_resource方法的source code,它似乎只是adding a before_filter到控制器。

我尝试了以下内容:

  1. 检查load_and_authorize_resource before_filter。我找到了带有_process_action_callbacks方法的过滤器,但我没有看到与CanCan相关的过滤器。我不确定这是否是由于如何添加before_filters。

  2. 我尝试测试MyController.should_receive(:load_and_authorize_resource).with(:network),但无济于事。

  3. 还有其他建议吗?你会如何测试?

1 个答案:

答案 0 :(得分:1)

我会使用mocha或其他一些模拟框架来模拟它,例如:

CanCan.expects(:load_and_authorize_resource).once.returns(true)