我同樣遵循M哈特爾的 「Ruby on Rails的教程」,章3.2.2RSpec的測試通不過,即使test.log中顯示ActionNotFound
當我添加/ static_pages /即將routes.rb中,即使是 '關於' 行動不在static_pages_controller.rb中定義,rspec測試通過。
這讓我瘋狂!
我使用的紅寶石2.1.1,RSpec的護欄2.14.2,水豚2.1.0
static_pages_spec.rb:
require 'spec_helper'
describe "StaticPages" do
describe "About" do
it "should have the content 'About'" do
visit '/static_pages/about'
expect(page).to have_content('About')
end
end
end
的routes.rb:
RortSampleApp::Application.routes.draw do
get "static_pages/about"
end
static_pages_controller.rb:
class StaticPagesController < ApplicationController
end
命令運行RSpec的測試結果&:
$ rspec spec/requests/static_pages_spec.rb
.
Finished in 0.02604 seconds
1 example, 0 failures
Randomized with seed 61832
而且test.log中:
(0.1ms) begin transaction
Started GET "/static_pages/about" for 127.0.0.1 at 2014-04-02 01:59:45 -0700
AbstractController::ActionNotFound - The action 'about' could not be found for StaticPagesController:
actionpack (4.0.4) lib/abstract_controller/base.rb:131:in `process'
actionpack (4.0.4) lib/abstract_controller/rendering.rb:44:in `process'
嘗試,但它並沒有幫助。與以前相同的結果。 – user3488516
對不起,我剛剛意識到我的測試工作正常(我應該首先進行適當的檢查)。但仔細看後,我發現我使用了不同的水豚版本來使它工作:gem'capybara','〜> 1.1.2'。我有版本2.1.0和2.2.0的問題。 – jyrkim
由於水豚1.1.2不再可用,我使用1.1.4;但沒有工作。然後我將rspec-rails更改爲2.11.0,但仍然無效。而且,我還發現了一個奇怪的問題,在我從static_pages_controller.rb中刪除'about'動作並存在app/view/static_pages/about.html.erb後,我仍然可以通過瀏覽器訪問/ static_pages/about!我在使用RUBY 2.1.1,有什麼不對嗎? – user3488516