テストって何のためにやるのか分からないよね!(初心者の叫び)


取り敢えず、分からんけども、テスト書いてみるか!!しかし・・・

最近、企業さんからいただいたアプリ作成の課題でテストをする必要があり、

(別に書かなくても良いのですが、テストコードを書いたほうが品質に気を使っているのだなと評価されるので)

テストの学習を始めました。

早速、Android全書やその他記事諸々を読み始める。

しかし、それらは前提知識がないと読めないので、かなり難しい…

取り敢えず、クラス名の上にカーソルを合わせて、右クリックすると「Show Context Actions」と表示されるので、クリックし、そして、「Create Test」みないなものが出てくると思うので、それもクリックすると、そのクラスに対応したテストクラスができます。

超入門以外の記事を読んで、分かることはこれくらい笑

でもでも、諦めず自分に適したレベルの記事を読み漁りながら、この記事を完成させたいと思います。

実機テストで良くね?

まず、ここっすね。

色々と記事を読み漁っていると、「なぜ、テストを書くのか?」「弊社では、テストを書く必要性がますます高まっています。」という文言を目にすることがある。

つまり、テストはしなければならないものではないらしい。

知り合いのエンジニアの方に聞くと、テストコードを書くか否かは、コストパフォーマンスによるらしい。

当然、書いた方がいいに越したことはないらしいが、そこまで優先順位は高くないみたい。(なのかな?)

また、例えば、1という数字を画面上に表示させたときに、それがString型なのか?Int型なのか?一発で判別することが難しい。

それが原因でエラーが起こることを考慮すると(例えばね笑)、それの判別を自動で出来るテストコードは、まぁ割と恩恵を与えているのかな?と思う。

こんな記事を見つけましたが、やっぱりそんなにやらないといけないものでもない?

「テストを出来るだけ、ポジティブに捉える」という表現をされているので(笑)

結論:手動だと面倒な時があるから

こちらの記事のサンプルテストが、読みやすいものだったので、初級者がテストの意味をじんぐり考える材料としては、良質なものだと思う。

上記の記事であるように、EditTextに入力した値を用いて、なんかメソッドを実行するようなとき、エミュレータや実機で動かすことでも確認できるが、例えば予期しない値を入れた時ちゃんとはじいてくれるのかどうか?を手動で確かめるより自動でやってくれた方が、速い。

(例えば、氏名を入力する欄に数字を入れた場合、falseを返してくれるのかどうか的な?)

そう考えると、テストの意義は見えてきて、やっと書き始めることが出来るのではないのか?

例えると、買い物のレシートとか、スマホ契約したときの契約内容の確認書類とか、なくてもいいけど、ざっくりと「しっかりしたもの」にするために必要なものなのかなと思った笑。