2012-02-24 80 views
0

我有另一个thread尝试一种不同的方法来测试资源是否正在控制器中加载和授权,但它似乎是我的边界测试CanCan本身。我已经查看了CanCan的load_and_authorize_resource方法的source code,对控制器来说它似乎是adding a before_filter我应该如何测试CanCan的load_and_authorize_resource在我的控制器中被调用?

我已经试过如下:

  1. 检查一个load_and_authorize_resource的before_filter。我用_process_action_callbacks方法找到过滤器,但是我看不到与CanCan相关的过滤器。我不知道这是由于如何添加before_filters。

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

  3. 其他建议?你如何测试这个?

+0

为什么不看看,当'授权惨惨异常引发'叫? – zetetic 2012-02-24 04:28:20

回答

1

我使用mocha或其他一些嘲讽的框架,像嘲笑吧!

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

正在尝试这种方法 - 这个调用似乎没有在CanCan或控制器本身上进行。不知道在哪里设置模拟期望 - 但不要认为这个答案有效(尽管我使用RSpec模拟,而不是摩卡) – Phantomwhale 2013-02-05 00:17:18

相关问题