Web Marina

日々の業務や勉強などで得た知識をアウトプットしていきます。

テストはきちんと工程を考えましょう・・・

f:id:song-of-life1352607:20170221152659j:plain

こんにちは、マリンです。

現在は管理用サイトのポートフォリオ編集機能を実装中です。

ここまででテストがいまいちうまくいかなくてハマりました。

ハマった点

ポートフォリオの投稿と編集をそれぞれ失敗ver.と成功ver.でテストするが、

データ送信後の画面遷移がうまくいかない。

原因

テストにログインの工程を入れていなかったことが原因でした。

テストの流れとしては

  1. ログイン用のパスを開く

  2. ログインする

  3. ログイン中であることを確認

  4. 投稿用のパスを開く

  5. データ送信

  6. 成功なら詳細ページにリダイレクト、失敗のときは投稿ページを再描画。

本当はもう少し細かいですが、ざっくりこの流れなのです。

しかし1〜3を書いていなかったのですね。

リダイレクトのときに出たメッセージで気づきました。

Expected response to be a redirect to <http://www.example.com/works/775365376> but
 was a redirect to <http://www.example.com/login>.

renderで再描画するだけだと

expecting <"works/edit"> but rendering with <[]>

と出てくるだけなので

「え?何?」と全く理解できなかったのですが、

URL出てきたおかげでやっと解決しました・・・

まとめ

ログインで使える機能をきちんと明示したりすればもっと

早く気づいたかもなんですが・・・

なんせずくなし(←長野の方言)なので

「ま、ログインしなきゃ何もかも見られないようにしちゃえばいいや!私しか使わないしw」

なんてログイン=メニュー表示にしたせいで見落としたんですね・・・

テストを書くときにはきちんと一連の流れを考えて書かなきゃダメですね。

そしてコンピューターには1から10まで事細かに指示しなきゃいけない!

ってことも忘れてました・・・笑