Closed25

Rails応用2

なななななな

「タグ一覧ページ」と「タグ編集ページ」が実際にどうなっているか確認する。

なななななな

たしかにパンくずリストが表示されてないな。
ついでにスラッグって何?と思って調べた。

スラッグとは、ページを識別するURLの一部で、URLの末尾にあります。IT用語で「位置を示すコード」という意味があり、任意の文字列を指定できる機能です。
スラッグには、任意の文字列を自由に指定することができますが、意味のある単語を使用することが推奨されています。スラッグの命名はSEOで重要です。適切なキーワードなどを設定することで、ユーザーにも分かりやすく、SEOにも良い影響があると言われています。
スラッグとパーマリンクの違いは、スラッグはURLを構成する一部の文字列であることに対して、パーマリンクは各ウェブページの全URLを指します(固定リンク)。

なななななな

さて、課題に取り組んでいく。
まずconfig/breadcrumbs.rbを確認する。

なななななな

「タグ一覧ページ」「タグ編集ページ」がないので追記する。

なななななな

リンクを書かなきゃいけないからルーティングを確認しよう。コンソールでもできるけど、確かブラウザからも特定のURLにアクセスするとできるんだよな。やってみよう。

なななななな

configの追記OK。次はビューの確認と修正。
他のページがどうなってるか確認してそれに合わせる。

なななななな

よし、両方OK!
目安時間でなんとなく察してはいたけど、今回のは割と簡単だな。
あとはテスト書いて通して、見本のテストも通して、それからプルリクして、LGTM出たらbreadcrumbのまとめ、って感じかな。

なななななな

というわけでテストを書いていく。
まずはFactoryBotを確認。Userはたぶんあるけど、Tagがなければ作る。

なななななな

Tagのtypeってなんだ…?入力フォームには無いみたいだけど。とりあえず放っておく。

なななななな

taxonomiesってのも謎だなあ。これも必要になるまでは放置でいいか。

なななななな

TagのFactoryBotができたので、テストコードを書いていく。

タグ一覧ページ

  1. adminユーザーを作成
  2. タグを作成
  3. ログイン
  4. 「タグ」リンクをクリック
  5. パンくずリストに"タグ"という文字列があるか確認

タグ編集ページ

  1. 途中まで一覧ページと同じ
  2. 「編集」リンクをクリック
  3. パンくずリストに”タグ編集”という文字列があるか確認

こんな流れでいいかな。

なななななな

お、expect(.breadcrumb)って書き方はダメらしい。こっちはCSS準拠じゃないのか?
要素をクラスで指定する方法を調べてみよう。

なななななな

findを使えばよかったみたいだ。
無事テスト通った!

怒られたことメモ

  • letbeforeの中では使えない。あくまでdescribecontextといった具体的なテストケースの中で使うこと
  • create!なんてメソッドはない。let!と勘違いしていた
なななななな

無事テストも書けたし通ったので、今度は見本のテストをダウンロードして通るか確認する。
自分が書いたテストは一旦ゴミ箱に入れてあとで見本と見比べる。

なななななな

テストは通ったけどexample 5!?って思ったけどたぶんあれだ、パンくずリストのリンクがちゃんと正常に飛べるかどうかもテストしてるんだなこれは。そこ忘れてた。
ともあれ通ったのでプルリクする。

なななななな

あと今気づいたけどspecファイルの拡張子は普通に.rbで良かったんだな。間違えて.spec.rbにしてた。だからexec rspecで実行されなかったのか。
xxx_spec.rbが一般的って感じだな。

なななななな

あ〜やっぱりリンク先のURLが間違ってないかのテストしてるな。次から気をつけよう。

なななななな

withinとかいう便利なメソッド使ってる!find使って入れ子にするよりこっちのほうがわかりやすくていいな。

なななななな

あ、しまった。GitHubの草に反映されるようになってなかった。今からやってもされるのかな。やってみよ。

なななななな

反映された!過去のも…と思ったけど、メルアド設定前のを反映するのはたしかちょっと面倒なんだよな…それはまた今度にするか。

このスクラップは6ヶ月前にクローズされました