【问题标题】:Rails/RSpec - How to write rspec tests for handlers?Rails/RSpec - 如何为处理程序编写 rspec 测试?
【发布时间】:2020-12-09 14:06:26
【问题描述】:

我有一个负责在 db 中创建新记录的处理程序。它从 POST 请求中获取参数并将新记录添加到数据库。该帮助程序定义如下:

module Vehicles
   module Handlers
      class AddVehicle
        def initialize(vehicle_params)
          @vehicle_info = vehicle_params
        end
    
        def call 
          create_vehicle
        end
    
        private
    
        def create_vehicle
          Vehicle.create!(@vehicle_info)
        end
      end
    end
end

我想测试该类方法是否正常工作但不发出 POST 请求。所以我不需要使用 factory_bot 创建数据,只需在调用方法时输入参数。您知道如何测试这种行为吗?

【问题讨论】:

    标签: ruby-on-rails rspec


    【解决方案1】:

    处理程序是一个类,所以只需要做这样的事情......

    h = Vehicle::Handlers::AddVehicle.new(vehicle_params)
    

    获取处理程序的实例。然后,您可以像测试任何其他课程一样进行测试。比如……

    vehicle = h.call
    refute_nil vehicle
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-17
      相关资源
      最近更新 更多