#ruby-on-rails #rspec
#ruby-на-рельсах #rspec
Вопрос:
У меня есть обработчик, который отвечает за создание новой записи в базе данных.Он берет параметры из запросов 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, а просто помещать аргументы при вызове метода. У вас есть идея, как проверить это поведение?
Ответ №1:
Обработчик — это класс, поэтому просто нужно сделать что-то вроде этого…
h = Vehicle::Handlers::AddVehicle.new(vehicle_params)
чтобы получить экземпляр обработчика. Затем вы можете тестировать, как и любой другой класс. Например…
vehicle = h.call
refute_nil vehicle