3/27のAndroid勉強会で発表した資料です
お話したことを簡単に記載します
0. Title Mockk Tips
1. 自己紹介
2. メニューズよろしくおねがいします!
健康的な献立を提案してくれるアプリです
3~8. ことの発端になったコード
・privateメソッドとしてクラス内に押し込めておきたいメソッドを使っているpublicメソッドのテストを書きたい
・メソッド内部で生成されているオブジェクトの変数のテストをしたい
9~11. mockkを使って解決しよう!
12. mockkは使いやすいです
モックオブジェクトの作成はMockitoの使用感と同じです
導入については割愛させていただきますが
公式が充実しているのですぐ使い始められます
13~14. spykを使ってmock化し、recordPrivateCallsをtrueにすることでプライベートメソッドをフックすることができるようになります
15~16. every~returnがmockitoで言うところのMockito.whenと同じです
privateメソッドは mockobject["privateMethodName"]でフックできます
returnsの後ろに任意の返却値を書きます
17~29. 評価はverifyに記載します
inverseオプションをつけるとテスト対象のメソッドが実行されていないことを確認できます。inverseの代わりにwasNot Calledを利用することもできます
20~24. slotとcapture
slotは実行されたときに作成されたオブジェクトを保持しておける枠のようなものです。every block内でcapture(slot)とすることで保持されます。
保持されたオブジェクトは評価で利用することができます
25. ありがとうございました!