【问题标题】:UnknownFormat in rails specRails 规范中的 UnknownFormat
【发布时间】:2015-02-13 15:53:15
【问题描述】:

我对 Rails 还很陌生,我正在尝试从控制器操作中返回一个 javascript 文件。在 TDD 方式中,我首先尝试编写一个失败的测试,虽然我已经解决了许多自启动以来它失败的原因,但我现在遇到了一个我不知道如何修复的错误。如果我在浏览器中运行它,它可以工作。但是运行规范我得到一个错误“ActionController::UnknownFormat”指向respond_to do |format|行。

这是控制器动作...

def job_board
    respond_to do |format|
      format.js
    end
  end

还有我的规格

require 'rails_helper'

RSpec.describe ApiController, :type => :controller do
  describe "when using an invalid url/api key" do
    it "should return error" do
      get :job_board
      expect(response).to have_http_status(400) #bad request
    end
  end
end

最后是我的路线。

Rails.application.routes.draw do
  get 'api/job_board' => 'api#job_board', defaults: { format: 'js'}
end

知道为什么规范会抛出这个错误吗?谢谢。

【问题讨论】:

  • 你试过使用 format.json 吗?
  • 奇怪的是,无论我列出什么格式(format.json、format.html 等),它都会在上面一行继续出错 - respond_to do |format|
  • 尝试在您的 routes.rb 文件中删除 ', defaults: { format: 'js' }'?
  • 如果我删除它,它也会在浏览器中中断并显示相同的错误消息。
  • 搞清楚了。我不得不更改规范中的 get :job_board 以获取 :job_board, format: :js

标签: ruby-on-rails-4 rspec-rails


【解决方案1】:

想通了。我不得不改变

get :job_board 

在规范中

get :job_board, format: :js

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-29
    • 1970-01-01
    • 2013-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-14
    • 1970-01-01
    相关资源
    最近更新 更多