【发布时间】:2018-03-05 18:22:16
【问题描述】:
我有一个辅助方法:
has_permission?
在一个名为的模块中:
模块应用程序助手
在应用程序/助手内部。
我还有一个包含它的 IntegrationTest:
include ApplicationHelper
我的集成测试通过 get 请求调用我的一个控制器。
On call 我想测试我的集成测试是否到达某个方法。
在这种方式上必须通过一些方法,其中之一是
has_permission?
为了确保这个方法通过我想存根它。
Object.any_instance.expects(:has_permission?).returns(false) 没用
ApplicationHelper.expects(:has_permission?).returns(false) 也不起作用,因为它不是静态方法。
有没有办法可以在测试中存根帮助程序非静态方法,以便在所有情况下都返回 false?
测试:
test "test try to edit without permission" do
@curr = users(:me)
sign_in @curr
SellingController.expects(:validate).never
post enable_update_user_selling_path(id: @user, params: {user: {sell: "1"}})
结束
【问题讨论】:
-
你能展示你的测试用例吗?可能值得尝试在控制器实例上存根(
@controller,如果可用) -
我添加了测试,但不幸的是我没有@controller 实例。
标签: ruby-on-rails ruby integration-testing ruby-mocha