【发布时间】:2011-08-20 23:32:38
【问题描述】:
我正在编写一个规范来测试当有人通过 URL 发送查询时 mashup_controller 的行为。我需要模拟 URL 中包含的参数,并且我读到 post() 方法会这样做,但是当我收到错误时:
1) MashupController simulates query
Failure/Error: post :create
NoMethodError:
undefined method `post' for
#<RSpec::Core::ExampleGroup::Nested_1:0x980bc50>
# ./mashup_controller_rspec.rb:9:in `block (2 levels) in <top (required)>'
Finished in 0.20199 seconds 1 example, 1 failure
Failed examples:
rspec ./mashup_controller_rspec.rb:7 # MashupController simulates query
这是我的代码:
require 'spec_helper'
require 'mashup_controller.rb'
describe MashupController do
it "simulates query" do
post :create
end
end
对不起,如果我没有任何意义。我对 Rails 和 rspec 很陌生。任何帮助,将不胜感激。谢谢。
【问题讨论】:
-
显示您的目录结构。另外,您使用的是什么版本的rails?这个混搭控制器是否继承自 ApplicationController?
-
是的,MashupController 确实继承自 ApplicationController。 mashup_controller.rb 在另一个目录中,但我将它添加到 $LOAD_PATH,所以我认为这不是问题所在。另外,我正在运行 Ruby 1.9.2、Rails 3.0.1 和 rspec-rails 2.6.1。我想知道我是否只是设置了错误。
标签: ruby-on-rails ruby rspec tdd bdd