Recently I’ve been testing some stuff behind Doorkeeper and I needed to mock Doorkeeper token to return a stub. In older Doorkeeper versions it was done like this:

stub_prs = {
  :accessible? => true,
  :resource_owner_id => (user.nil? ? @user.id : user.id),
  :expired? => false
}
Doorkeeper::AccessToken.expects(:find_by_token).returns(stub(stub_prs))

However in a new Doorkeeper version, the’ve changed something and my mockings stopped working. So if you use newest Doorkeeper version, the mock should look like this:

stub_prs = {
  :accessible? => true,
  :resource_owner_id => (user.nil? ? @user.id : user.id),
  :expired? => false
}.merge(params)
@controller.expects(:doorkeeper_token).returns(stub(stub_prs)).at_least_once