首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Rails Doorkeeper的MiniTest

使用Rails Doorkeeper的MiniTest
EN

Stack Overflow用户
提问于 2014-03-14 02:41:01
回答 3查看 1.2K关注 0票数 3

在Minitest中,什么等同于这个Doorkeeper protected controllers in RSpec

代码语言:javascript
复制
let(:token) { double :accessible? => true }

before do
  controller.stub(:doorkeeper_token) { token }
end

我想用Minitest测试我的,目前所有的回复都是“期望回复是a,但却是<401>”

EN

回答 3

Stack Overflow用户

发布于 2016-03-22 05:39:36

基于@riffraff的答案:

gem 'mocha'添加到Gemfile,然后添加bundle install (https://github.com/freerange/mocha)

为您的测试添加一些帮助程序:

代码语言:javascript
复制
# test/test_helper.rb
# ...
require "mocha/test_unit"

class ActiveSupport::TestCase
  fixtures :all

  # ...

  def sign_in user
    token = Doorkeeper::AccessToken.new(resource_owner_id: user.id)
    ApplicationController.any_instance.stubs(:doorkeeper_token).returns(token)
  end
end

在测试中使用新的帮助器:

代码语言:javascript
复制
test 'Whatever you want' do
  sign_in users(:one) # here is an example using fixtures
  # Do your get / post / etc
  # Do your assertions
end
票数 4
EN

Stack Overflow用户

发布于 2015-03-10 03:39:54

我让它工作了,一旦你找到了正确的方法,这就很简单了。

我在test_helper.rb中创建了一个新类

代码语言:javascript
复制
class StubToken
  def acceptable?(value)
    true
  end
end

然后,您可以使用此类通过调用以下代码来绕过令牌要求:

代码语言:javascript
复制
@controller.instance_variable_set('@_doorkeeper_token', StubToken.new)

由于@_doorkeeper_token是在Doorkeeper::helper中定义的代码,因此它将解析为存根对象。

文件'lib/doorkeeper/rails/helpers.rb',第21行

代码语言:javascript
复制
@_doorkeeper_token ||= OAuth::Token.authenticate request, *Doorkeeper.configuration.access_token_methods

并调用你的存根接受吗?方法。

票数 1
EN

Stack Overflow用户

发布于 2014-10-21 00:44:09

试一试

代码语言:javascript
复制
token = Doorkeeper::AccessToken.new(resource_owner_id: some_user.id)
YourController.any_instance.stubs(:doorkeeper_token).returns(token)

或者,如果您使用的是模拟库,则只需模拟令牌。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22387975

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档