tusbasaのブログ

業務や勉強中に調べたことを自分用にメモするブログ

【rspec】テストをする際に気をつけること

  • 「〜されないこと」のみをテストしない
    →期待した動きになっていない場合でもテストがパスする可能性があるから。「〜される」場合もテストすること。

  • 境界値をテストする
    →引数が20以上でtrue,falseが分かれるメソッドをテストする場合19と20でテストを行う。

  • 異なる項目の出力結果を同じ値にしない
    →項目が入れ替わっていてもテストがパスしてしまう可能性がある。

  • let(遅延評価)が呼び出されることを確認する

  • テストコード全体がなるべく1画面に収まるようにする
    →describeやcontextのネストを深くしすぎると、画面のはるか上の方でletやbeforeが登場したりするので要注意

参考 https://qiita.com/jnchito/items/133d9953e1e7214e5357
https://qiita.com/jnchito/items/2a5d3e15761fd413657a

業務中に気づいたこと

  • テストデータが作られる順番を正確に把握する。
    →ログイン用のユーザーを作成しているが、その前にログイン処理が走っている場合など。データの作成やログイン処理などを一つ上の階層に共通化させた時など、複雑になってくるとミスが起こりやすい。期待通りに動くテストを書いているはずなのにパスしない場合にまず疑うポイント。

  • インスタンスをreloadする
    インスタンスの値を変更した場合reloadをしないと変更が反映されない。非常にハマりやすい。