質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

2回答

2656閲覧

railsチュートリアルのリンクに対するtestが通らない

退会済みユーザー

退会済みユーザー

総合スコア0

Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

1クリップ

投稿2019/05/12 11:35

編集2019/05/12 12:33

railsチュートリアルをやっていて、第5章のリンクのテストでつまづいています。

require 'test_helper' class SiteLayoutTest < ActionDispatch::IntegrationTest test "layout links" do get root_path assert_template 'static_pages/home' assert_select "a[herf=?]", root_path, count:2 assert_select "a[herf=?]", help_path assert_select "a[herf=?]", about_path assert_select "a[herf=?]", contact_path get contact_path assert_select "title", full_title("Contact") get signup_path assert_select "title", full_title("Signup") end end

テスト結果は以下のようになります。

(base) rails test:integration Started with run options --seed 31491 FAIL["test_layout_links", SiteLayoutTest, 0.39078600000357255] test_layout_links#SiteLayoutTest (0.39s) Expected exactly 2 elements matching "a[herf="/"]", found 0.. Expected: 2 Actual: 0 test/integration/site_layout_test.rb:8:in `block in <class:SiteLayoutTest>' 1/1: [=======================================] 100% Time: 00:00:00, Time: 00:00:00 Finished in 0.39166s 1 tests, 2 assertions, 1 failures, 0 errors, 0 skips

このテスト結果のFAILはどのようなことを言っているのでしょうか?
リンク2つあると書いてあるけど、実際は0だよーと返しているのでしょうか?

サーバーにアクセスしてリンクを押して実際に調べても、リンクが全て合っているので、テストの書き方が間違っているのでしょうか?

下記がconfig/routes.rbになります

Rails.application.routes.draw do root 'static_pages#home' get '/help', to:'static_pages#help' get '/about', to:'static_pages#about' get '/contact', to:'static_pages#contact' get '/signup', to:'users#new' # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html end

app/views/layouts/application.html.erb

<!DOCTYPE html> <html> <head> <%= render 'layouts/head' %> </head> <body> <%= render 'layouts/header' %> <div class="container"> <%= yield %> <%= render 'layouts/footer' %> </div> </body> </html>

app/layouts/_header.html.erb

<header class="navbar navbar-fixed-top navbar-inverse"> <div class="container"> <%= link_to "sample app", root_path, id: "logo" %> <nav> <ul class="nav navbar-nav navbar-right"> <li><%= link_to "Home", root_path %></li> <li><%= link_to "Help", help_path %></li> <li><%= link_to "Log in", '#' %></li> </ul> </nav> </div> </header>

app/layouts/_footer.html.erb

<footer class="footer"> <small> The <a href="https://railstutorial.jp/">Ruby on Rails Tutorial</a> by <a href="http://www.michaelhartl.com/">Michael Hartl</a> </small> <nav> <ul> <li><%= link_to "About", about_path %></li> <li><%= link_to "Contact", contact_path %></li> <li><a href="http://news.railstutorial.org/">News</a></li> </ul> </nav> </footer>

よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sola-msr

2019/05/12 12:16

viewファイルのソースも併せて提示したほうがいいかもしれません
退会済みユーザー

退会済みユーザー

2019/05/12 12:33

ご指摘ありがとうございます。
guest

回答2

0

ベストアンサー

test "layout links" do get root_path assert_template 'static_pages/home' assert_select "a[href=?]", root_path, count:2 assert_select "a[href=?]", help_path assert_select "a[href=?]", about_path assert_select "a[href=?]", contact_path

testのリンクのhrefのはずがherfになっていました。
スペルミスでこのような質問をしてしまい、申し訳ありませんでした。

投稿2019/05/13 02:17

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

Railsチュートリアルのままのソースでしたら

\views\layouts\_header.html.erb以下のリンクがおかしいのだと思います

erb

1<header class="navbar navbar-fixed-top navbar-inverse"> 2 <div class="container"> 3 <%= link_to "sample app", root_path, id: "logo" %> <!-- ここ --> 4 <nav> 5 <ul class="nav navbar-nav navbar-right"> 6 <li><%= link_to "Home", root_path %></li> <!-- ここ --> 7 <li><%= link_to "Help", help_path %></li> 8 <li><%= link_to "Log in", '#' %></li> 9 </ul> 10 </nav> 11 </div> 12</header>

投稿2019/05/12 12:25

sola-msr

総合スコア876

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/05/12 12:36

テストのエラーが何を言いたいのか分からず、どう直せばいいのでしょうか? よろしくお願いいたします。
sola-msr

2019/05/12 12:43

テストは簡単にいうと、 root_pathのリンクが2つあるはず(期待値は2件)なのに一つもなかった(0件) という結果を書いてます んーとりあえず `StaticPagesController`に`home`メソッドがが定義されているか確認してください
退会済みユーザー

退会済みユーザー

2019/05/12 12:49

なるほど、コントローラーにはhomeアクションはあります。
sola-msr

2019/05/12 13:02

app/views/layouts/application.html.erb に書いてある <%= render 'layouts/head' %> を外してみるとかどうですか?(チュートリアルには出てきてませんでしたがオリジナルファイルですかね?)
退会済みユーザー

退会済みユーザー

2019/05/13 02:11

headの中身はリンクテストに関することは書いてないですね。 ちょっと色々試してみます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問