0
我有一个控制器动作欲测试:RSpec的摆幅 - 存根控制器可变
LOG = ApiRequest::Resource::Login
def create
@response = LOG.new(current_user, params: params).create
return if request_failed?
...
end
def request_failed?
if @response.is_a? Hash
false
else
error = @response
redirect_to new_login_path, alert: error
true
end
end
LOG.new(current_user, params: params).create
是外部API调用正常返回任一散列或与该错误的字符串。我想测试控制器动作而不触发呼叫,如强制@response = {}
,并检查它是否不重定向,并强制@response = ""
应触发重定向。
it 'redirects if fails the request' do
post :create
expect(response).to redirect_to new_login_path
expect(flash[:alert]).not_to be nil
end
如何存根实例变量?
你必须使用ControllerName :: LOG访问不断,除了它的工作! – YoloSnake