ruby-on-rails - 在 Controller 内部调用的 Rails Minitest Stub 类方法

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

如何在模拟请求时 stub 在 Controller 内部调用的方法?

我尝试过的:

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

当我在 stub 中打印 User.some_method 时它有效,但是当我在我的 Controller 操作中使用该方法时它不起作用。

最佳答案

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

例如(来自他们的文档)

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

关于ruby-on-rails - 在 Controller 内部调用的 Rails Minitest Stub 类方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29563984/

相关文章:

ruby-on-rails - 如何使用 searchkick 进行逻辑运算的复杂查询

java - 如何在没有单元测试的情况下找到类?

Python - 对象MagicMock不能在 'await'表达式中使用

javascript - 如果由于验证错误而未提交表单,则 jQuery 向下切换表单

ruby-on-rails - 将 gem 类放入命名空间

ruby-on-rails - 使用 form_tag 传递所有参数

ruby-on-rails - 无法转储单例 - cached_resource gem

java - Maven Java Surefire 无法创建测试类

ruby-on-rails - 在 Devise 注册时提交时为 "Unpermitted parameter: email"

mysql - 我应该如何编写此 sql 查询以便只获取用户表中不存在的数字?