problem mit rspec testen, undefined method 'post'
Schreibe ich eine Skillung zu testen, das Verhalten der mashup_controller, wenn jemand sendet eine Anfrage über eine URL. Ich brauche, um zu simulieren, werden die Parameter in der URL enthaltene, und ich habe gelesen, dass die post () - Methode wird das tun, aber Wann bekomme ich eine Fehlermeldung:
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
Hier ist mein code:
require 'spec_helper'
require 'mashup_controller.rb'
describe MashupController do
it "simulates query" do
post :create
end
end
Sorry, wenn ich mich nicht Sinn macht. Ich bin sehr neu auf rails und rspec. Jede Hilfe würde geschätzt werden. Danke.
- Zeigen Sie Ihre Verzeichnis-Struktur. Auch, welche rails version benutzt du? Hat dieses mashup-controller erbt von ApplicationController?
- ja, MashupController tut Erben von ApplicationController. mashup_controller.rb ist in einem anderen Verzeichnis, aber ich habe es auf $LOAD_PATH, so denke ich nicht, dass ist das problem. Auch ich bin mit Ruby 1.9.2, Schienen 3.0.1 und rspec-rails 2.6.1. Ich Frage mich, ob ich nur etwas falsch.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn die spec-Datei ist nicht unter
spec/controllers
Methoden wieget
undpost
werden nicht automatisch zur Verfügung gestellt vonrspec-rails
.Müssen Sie entweder tag-deine Skillung:
oder schließen Sie das Modul:
Sehen der relevante code in rspec-rails.
gem spec-rails
in Ihrem Gemfilemashup_controller_rspec.rb
sollte unterspec/controllers
Ich verwendet Juwel rspec-rails statt gem spec-Schienen.
In Rails 4, Sie können erklären, die Art der RSpec-tests als
:request
und die spec-Datei kann in ein beliebiges Verzeichnis.Meine Lösung ist