:のはずし忘れとかね・・・
そのソースよりちょっと下にassertとはなんぞやって書いてあるよこういう「わからなかったところが、ちょっとあとで出てくる参考書」みたいなの多いから
「わかんねぇ」ってなったときでもちょっとだけ進めてみるの大事だよ
画像の右下にあるのがコマンドラインでテストの結果が出てる
セミコロンがないンゴよぉ…www
どこにセミコロンが必要なん?
テストが通らないなら、テストされてる方のコードがダメなんだろ
:と2の間にスペース足りなくね
どこのassertで落ちてるの?
rubyはスペース関係ない
見やすさだけ
>>
ほんと初心者だからわからないっす…
ルートパスのHTMLに、リンクが2つないから落ちてるんじゃないか?
>>間違えた
Expected exactly 2 elements matching “a[href=”/”]”, found 0..
ってエラーが出てきただろ?
これは
assert_select なんちゃら
って書いたら「なんちゃらっていうのがそのページにあってほしい!」
っていう文をお前が書いたから起こってる
assert_select “a[href=?]”, root_path, count:2
は、たぶんだけど、
「ルートパスへのリンクが2個あってほしい!」っていう意味
だからテストを走らせたときに
<a href=”/”></a>が2つあってほしいのに
無いじゃん!げきおこ!
って感じで怒ってるわけ
だから元のところに2個リンクを用意しないといけないってこと??
そうそう「テストを書く」っていうのは
「自分の思った通りうごいているかな〜?」っていう確認を何回もするのめんどくさいじゃん?
それを自動化したものが「テストコード」なの
コードを修正した時でもテストコードを走らせれば、確認する手間が省けて楽だから書くで、このレイアウトのテストコードは、「ちゃんと自分が思った通りにリンクが表示されてるかな〜?」ってことで
「ちゃんと2個リンクあるかな?」っていう確認のために書いてるの
でもこれ、もとのソースにそういうの書いてないし、ちょっとチュートリアルとしては不親切かもね
俺は「テストとはなんぞや」ってわかってるから気にならないけど
Railsのテスト環境はhtmlもパースしてくれるんだなぁ
RubyはGithubのAPI叩いたときぐらいしか使ったことないからあんまりわからないけど
原因がなんとなくわかったけど解決の仕方がわからんっす、先生
<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>これちゃんと書いた?
_header.html.erb
これだよね?
俺も元のやつって言われたからこれ確認してたけど何が間違ってるのか…
<%= link_to “sample app”, root_path, id: “logo” %>
と
<li><%= link_to “Home”, root_path %></li>HTML一緒やんと思って飛ばしたりとかしてない?
html.erb
にしてみたら?
あとはテストじゃなくて、サーバ立ち上げて実際アクセスしたらもっとわかるかも
ちゃんとhtml.erbになっとる…
サーバ立ち上げてアクセスしたらソースはどうなってる?
ん?
おまえ!
‘root_path’って書いてるじゃねーか
そこは変数名のroot_pathだぞ
help_pathもだ
あ、そこか!
コンテキストのroot_pathの値をもとにテンプレートとして使うというやつだなお今後オワコンになっていく技術なもよう
34: :2016/01/24(日) 02:38:14.046 ID:
治しても解決しない件…
サーバ立ち上げて見てそもそもアクセスできるのか?
サイトはちゃんと見れてるぞ
<!DOCTYPE html>
<html>
<head>
<title><%= full_title(yield(:title)) %></title>
<%= stylesheet_link_tag ‘application’, media: ‘all’,
‘data-turbolinks-track’ => true %>
<%= javascript_include_tag ‘application’, ‘data-turbolinks-track’ => true %>
<%= csrf_meta_tags %>
<%= render ‘layouts/shim’ %>
</head>
<body>
<%= render ‘layouts/header’ %>
<div class=”container”>
<%= yield %>
</div>
</body>
</html>これで、renderって書いてあるか?
<%= render ‘layouts/header’ %>
この部分
サイトのソースがどうなっているか確認したほうがいいぞ
そもそもHomeとかが表示されているかどうかがわからないから、どこを直せばいいかわからない