iOSアプリ開発 自動テストの教科書
そういえば読み終えていた。メモと感想をば。
僕自身のテストコードについての経験値はRailsのminitestで単体テストや統合テストを書いてるよ。みたいな感じ。GithubにpushするとCirecleCIでテストを回すというところまで。
丁度、Swiftのコードを書いている時にこの本を書店で見かけて購入しました。
文章について
非常によみやすくてわかりやすい文章。僕は書籍の言い回し方が理解できない時がよくあって、何度か一緒の文章を読み返して自分なりの解釈に咀嚼するんだけど、この本はすっきり頭に入ってくる読みやすい本だった。
全体の流れ
- 単体テスト、XCTestの使い方書き方
- XCTestと併せて利用できるOSSの紹介
- UIテストの書き方
- CI、自動テスト、アプリ配信について
のような流れ。ボリューム的にはUIテストまでで半分。CIや他ツール、サービスの導入についてで約半分。
CIツールの紹介の項目なんかは、まああくまで紹介と設定なので、その辺は軽く読み流せたりできるかもしれないし、
また、すでにXCodeでテストを書いている人なんかは、もうXCTestのAPIなんかは多く知っていると思うので、こちらの本から学べることは少ないかもしれない。
XCodeでテストを書くことが可能なことは知っている。でもどうやって書くんだろう?的な人には良い本だと思います。
単体テストについて
この本を読むと間違いなくはじめの一歩は踏み出せるはず。
ただ迷わず書けるようになるかというとそれは当然、調べながら、時にはハマることもあると思う。
きちんと、オブジェクト間に依存があってテストしづらいコードの件、そうモックオブジェクトが必要だよね。的な話しについてもXCTest版ではどのようにするのかが紹介されている。これは後にOSSの紹介コーナーでも続いて紹介の記述がある。
個人的には、UIテストの項のように、とあるミニアプリを想定して、構成するクラスファイルの単体テストはこう書くというような紹介のされ方がしてあるともっとよかったと思った。
XCTestで利用できるOSS
良かった。特に環境や状態(通信や時間)依存に関する問題を解決したり簡易にしたりするOSSは知っておいて損はない。いや、自分が知らないだけなんだけど笑
それほど詳細には書かれていないんだけど、良い知見になった。詳細は各OSSのReadme見ればいい話しだし、ネット上にも沢山の事例があると思う。
UIテストについて
これも良かった。ボリューム的にも満足。
そもそもUIテストって?てな感じだったけど、Railsのintegrationに書くテストのようなイメージを持てばいいと思う。
書籍内ではsignupを行うミニアプリのUIを例として紹介していて、とても分かり易かった。
CI/CDのツール紹介
これはSaaSに近いサービスの紹介。本のタイトルにもある通り、「自動テスト」についての環境のお話し。
サービスごとに「どういことが出来るか」と設定についての解説がある。
ここはUIテストのエミュレートについてなんかのツールの紹介もあった。
実際にCIを導入している、検討している人たちなんかの知見の拡大、復習になると思う。
デバッグについて
最後におまけ程度のデバッグについての項がある。ここはまあ特に特筆することはないかな。