テストのassert_equalの引数の順序がexpected, acturalであるべき論について

はい、どうも

自分もよくテストを書くので、ちょっと気になったことがある内容についてです

テストのよくあるマッチャーで、assert_equalの引数を期待値、実際の値で書きましょうというのを聞いたことありますかね?

自分のプロジェクトでも、assert_equalで書くときは、期待値、実際の値で書いてます

もしかすると、人によっては、レビュー依頼したときに、期待値、実際の値で書くようにしてくださいと言われたこともありますかね?

ちょっとそれについて思っていることがあります

結論どっちでもいいです

ただ重要なのは、プロジェクトの中で、そういった期待値と実際の値の順序が統一されていることだと思います

一応以下の記事の中で、色々と述べられていますし、参考になります


参考
assertEqualsやassert_equalの引数はなぜ expected, actual の順なのか、調べてみたQiita

で、結局、どっちがいいんだろうって話ですね

正直、こういうどっちでもいいことってあると思っています

だいたいこっちの方が正しいと思う!というのを、明確な理由がないのに、あたかももっともらしい理由をいかに並べるかという感じになるのが嫌なんですよね

外してはいけないところは、ルールが混ざっていると混乱するので、その一つ上のレイヤーとして、ルールが混ざっていないことが大事だと思っています

自分の参加してきたプロジェクトでは、基本的に、期待値、実際の値で書いてます

ただ、記事に述べられているような形でメリットを受けられることがあるかというとそうではないです

理由としてはassertで確認する内容に改行などあったり、使っているマッチャーの種類も色々だからです

そもそもそんなにassert_equalがゴリゴリ並ぶことってないので

開発者としてはあくまでも、書くときに、どの順番で期待値、実際の値を並べるかということが、決まっていれば迷わないと思います

別に実際の値、期待値で確認したところで、何の問題もないわけですので

むしろこの問題よりも、ちゃんとテストケースを網羅できてるかとか、そっちの方が重要なことだと感じます

正し、全く考慮しなくて良いものではなく、このようなものは初期の開発の際に、色々と決まってしまうので、ちゃんと自分なりに意図を持って決めて置けると、後々、後悔は少なくなりそうな気がしますね

エンジニアをしてると、こんなことばっかりな気がします…

以上です

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA