2

重複の可能性:
Rspec テストはパスするはずだが失敗する

このエラーが発生するのはなぜですか?

C:\Sites\sample_app>rspec ?[32m.?[0m?[31mF?[0m?[32m.?[0m?[31mF?[0m?[32m.?]0m?[31mF?[0m]

失敗:

1) PagesController GET 'home' には正しいタイトルが必要です ?[31mFailure/Error:?[0m ?[31mresponse.should have_selector("title",?[0m ?[31mNoMethodError:?[0m ?[31mundefined メソッドhas_selector?' for #<ActionController::TestResponse:0x4162ce0>?[0m ?[36m # ./spec/controllers/pages_controller_spec.rb:14:inブロック (3 レベル) ) in '?[0m

2) PagesController GET 'contact' には正しいタイトルが必要です ?[31mFailure/Error:?[0m ?[31mresponse.should have_selector("title",?[0m ?[31mNoMethodError:?[0m ?[31mundefined メソッドhas_selector?' for #<ActionController::TestResponse:0x3eab898>?[0m ?[36m # ./spec/controllers/pages_controller_spec.rb:27:inブロック (3 レベル) ) in '?[0m

3) PagesController GET 'about' には正しいタイトルが必要です ?[31mFailure/Error:?[0m ?[31mresponse.should have_selector("title",?[0m ?[31mNoMethodError:?[0m ?[31mundefined メソッドhas_selector?' for #<ActionController::TestResponse:0x3f1ccb0>?[0m ?[36m # ./spec/controllers/pages_controller_spec.rb:41:inブロック (3 レベル) ) in '?[0m

5.15 秒で終了?[31m6 例、3 回失敗?[0m

失敗した例:

?[31mrspec ./spec/controllers/pages_controller_spec.rb:12?[0m ?[36m# PagesController GET 'home' には正しいタイトルが必要ですか?[0m ?[31mrspec ./spec/controllers/pages_controller_spec.rb:25?[ 0m ?[36m# PagesController GET 'contact' には正しいタイトルが必要ですか?[0m ?[31mrspec ./spec/controllers/pages_controller_spec.rb:39?[0m ?[36m# PagesController GET 'about' には正しいタイトルが必要ですか? [0m

シード 501 でランダム化

Application_helper.rb

モジュール ApplicationHelper

# Retrun a title on a per-page basic.
def title
    base_title = "Ruby on Railys tut sample app"
    if @title.nil?
        base_title
    else
        "#{base_title} | #{@title}"
    end
end

終わり

Pages_controller_spec.rb

「spec_helper」が必要

PagesController を記述する render_views を行う

describe "GET 'home'" do it "should be success" do get 'home' response.should be_success end

it "should have the right title" do get 'home' response.should have_selector("title", :content => "Ruby on Rails Tutorial Sample App | Home") end end

describe "GET 'contact'" do it "should be success" do get 'contact' response.should be_success end

it "should have the right title" do get 'contact' response.should have_selector("title", :content => "Ruby on Rails Tutorial Sample App | Contact") end end

describe "GET 'about'" do it "should be success" do get 'about' response.should be_success end

it "should have the right title" do get 'about' response.should have_selector("title", :content => "Ruby on Rails Tutorial Sample App | About") end end end

他に何か必要な場合は、追加して感謝します

4

1 に答える 1

0

テスト対象の正確な文字列を返すには、base_title メソッドが必要です。今回は「Ruby on Rails チュートリアル サンプルアプリ」です。現在、タイトルを「Ruby on Railys tut sample app」として設定しています。

于 2013-01-03T01:30:16.437 に答える