Rails/RSpec - 如何为处理程序编写 rspec 测试?

Rails/RSpec - How to write rspec tests for handlers?

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

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

我想测试 class 方法是否正常工作但不发出 POST request.So 我不需要使用 factory_bot 创建数据但只需在调用方法时放置参数。您知道如何测试这种行为吗?

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

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

获取处理程序的实例。然后您就可以像进行任何其他测试一样进行测试 class。例如...

vehicle = h.call
refute_nil vehicle