Rails Minitest Stub Class方法称为内部控制器

时间:2015-04-10 14:26:29

标签: ruby-on-rails unit-testing ruby-on-rails-4 minitest

如何在模拟请求时存根在控制器内调用的方法?

我尝试过的事情:

require 'test_helper'
class ConfirmationsControllerTest < ActionController::TestCase
  test 'dummy test' do
    User.stub(:some_method, 'string') do
      p User.some_method
      get(:index)
    end
  end
end

class ConfirmationsController < ApplicationController
  def index
    p User.some_method
  end
end

当我在存根中打印User.some_method时,它可以工作,但是当我在控制器操作中使用该方法时,它不会。

1 个答案:

答案 0 :(得分:0)

尝试https://github.com/codeodor/minitest-stub_any_instance

e.g。 (来自他们的文档)

String.stub_any_instance(:length, 42) do
  assert_equal "hello".length, 42
end