AAA (arrange, act, assert)について知った

Twitterを眺めていたら、AAA (arrange, act, assert) という、テストを書くにあたっての指針について知りました。

きっかけツイート:https://twitter.com/jnchito/status/1493781049767505920

  • arrange は 準備という意味で、データの作成や条件の設定など
  • act は 実行という意味で、検証したいメソッドの実行など
  • assert は 検証という意味で、expect で期待する値となってるか確かめるなど

Rspec的には、

arrangeはletやbeforeに処理がまとまっているのが望ましく、

actassertはitの中に処理がまとまっているのが望ましいようです。

 

このようにまとまっていると、どんな条件の時、何をすると、どんな結果が期待されるのか、ということが分かりやすいテストとなっているはず!

 

actに関しては、beforeにまとめて、itはassertだけにするという考えもあるようですが、私的にもactはitにまとまってる方がわかりやすいかな〜と感じました。

beforeはデータの作成や条件の設定に使うことが多いですし。

 

ここで、AAAという考え方を知る直前に自分が書いたUTをチェックしてみたところ、AAAに沿って書けておりました〜

ただ、もっと複雑なテストを書くときなどは、意識しないとAAAを守れていないことがあると思うので、テスト書く際は気をつけて行こうとおもいます(^_^)

 

参考にした記事

qiita.com

tech.pepabo.com