【问题标题】:Shoulda matchers - Rspec - Test controllers Actions to Json Response - FastJSON应该匹配器 - Rspec - 测试控制器对 Json 响应的操作 - FastJSON
【发布时间】:2020-07-22 05:07:06
【问题描述】:

如何使用 shoulda-matchers 测试这些操作,响应 JSON 成功 200 和失败 422 以及如何使用普通 RSpec 进行测试:如果可以的话,两种情况:

我认为它的存储库中缺少一些关于应该匹配的信息。 如果您能提供帮助,非常感谢。

  module V1
    class MeasurementsController < ApplicationController
      protect_from_forgery with: :null_session
      before_action :set_measurement, only: %i[destroy]

      def index
        measurement = Measurement.all

        render json: MeasurementSerializer.new(measurement).serialized_json
      end

      def create
        measurement = Measurement.new(measurement_params)

        if measurement.save
          render json: MeasurementSerializer.new(measurement).serialized_json
        else
          render json: { error: measurement.errors.messages }, status: 422
        end
      end

      def destroy
        if @measurement.destroy
          head :no_content
        else
          render json: { error: measurement.errors.messages }, status: 422
        end
      end

      private

      def set_measurement
        @measurement = Measurement.find(params[:id])
      end

      def measurement_params
        params.require(:measurement).permit(:time, :date, :sport_id)
      end
    end
  end
end```

【问题讨论】:

    标签: unit-testing rspec rspec-rails fastjsonapi shoulda-matchers


    【解决方案1】:

    No need for shoulda-matchers 你可以用这样的东西进行测试:

    require 'rails_helper'
    
    describe V1::MeasurementsController do
      describe '#index', type: request do
        it 'respond with 200' do
          get /your/endpoint
    
          expect(response).to have_http_status(200)
        end
      end
    end
    
    

    【讨论】:

      【解决方案2】:

      什么对我有用

      describe 'GET #index' do
          before { get :index }
      
          it { should respond_with(200) }
        end
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多