gpt4 book ai didi

ruby-on-rails - rails 4 升级后 Controller rspec 中的 ActionController::UnknownFormat

转载 作者:行者123 更新时间:2023-12-04 05:56:37 28 4
gpt4 key购买 nike

我在这个问题上卡了一天。这是 Controller 的样子:

class HarvestSchedulesController < ApplicationController

before_filter :authenticate_user!

respond_to :json

def show
@harvest_schedule = HarvestSchedule.find(params[:id])
respond_with @harvest_schedule
end
end

和规范:

let(:schedule) { mock_model(HarvestSchedule).as_null_object }

describe "GET show" do
before(:each) do
HarvestSchedule.stub(:find).with("1") { schedule }
end

it "finds the harvest schedule" do
HarvestSchedule.should_receive(:find).with("1") { schedule }
get :show, id: 1
assigns(:harvest_schedule).should eq schedule
end
end

当我运行规范时,错误是:

Failure/Error: HarvestSchedule.should_receive(:find).with("1") { schedule }
ActionController::UnknownFormat:
ActionController::UnknownFormat
# ./app/controllers/harvest_schedules_controller.rb:29:in `show'
# ./spec/controllers/harvest_schedules_controller_spec.rb:41:in `block (3 levels) in <top (required)>'

我根本看不出 Controller 或规范有任何问题。该应用程序之前使用的是 Rails 3.2.12,并且通过了所有规范。只有在我将 Rails 版本升级到 4.1.4 后才会出现此错误。我正在使用 rspec 2.14.1。有没有人遇到过类似的问题?

干杯

最佳答案

您已在此处指定操作仅响应 JSON 请求:

respond_to :json

因此,您还需要在规范中请求 JSON 响应:

get :show, id: 1, format: 'json'

关于ruby-on-rails - rails 4 升级后 Controller rspec 中的 ActionController::UnknownFormat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25318472/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com