加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 使用get和delete运行Rspec Test时,获取错误的

发布时间:2020-12-16 22:39:36 所属栏目:百科 来源:网络整理
导读:这应该是一个简单的,但是找不到为什么导致测试失败. 运行rspec时,我收到以下错误.但是在发表了“发送”方式之后,一切正常. 1) Messages GET /messages works! (now write some real specs) Failure/Error: get target_app_messages_path(@message.target_app
这应该是一个简单的,但是找不到为什么导致测试失败.
运行rspec时,我收到以下错误.但是在发表了“发送”方式之后,一切正常.
1) Messages GET /messages works! (now write some real specs)
     Failure/Error: get target_app_messages_path(@message.target_app.id)
     ArgumentError:
       wrong number of arguments (2 for 0)
     # ./app/controllers/messages_controller.rb:37:in `send'

的routes.rb

resources :target_apps do 
  resources :messages do 
    member do
     post 'send'
    end
  end
end

型号代码

class Message
  include Mongoid::Document
  belongs_to :target_app
end

控制器代码

class MessagesController < ApplicationController
  def index
    ...
  end
  def show
    ...
  end

  ...

  def send
    ...
  end
end

/spec/requests/message_spec.rb

describe "Messages" do
  describe "GET /messages" do

  let(:message) do
    FactoryGirl.create(:message)
  end

  it "works! (now write some real specs)" do
    # Run the generator again with the --webrat flag if you want to use webrat methods/matchers
    get target_app_messages_path(message.target_app.id)
    response.status.should be(200)
  end
end

解决方法

Ruby中的每个对象都有一个send方法:

http://ruby-doc.org/core-1.9.3/Object.html

通过命名您的操作“发送”您造成名称冲突.尝试将该操作重命名为“sendmessage”或以不同的方式定义它.应该有一种方法可以将URL发送到名为“sendmessage”的动作.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读