fresh digitable

めんどくさかったなってことを振り返ったり振り返らなかったりするための記録

自作のViewGroupをRobolectricでテストしつつ開発する その2

つづきです: akihito104.hatenablog.com

fragment-testingを使おう

前回の記事では空のActivityにカスタムビューをアタッチしてからテストしているが、androidxのfragment-testingというライブラリを使うのが楽そうというか正しそうなのでこちらを使いましょう。

developer.android.com

やることは、前回の記事で空のActivityを作ってやっていることを空のFragmentに置き換えてやるだけ。

おまけ: Robolectric.buildAttributeSet()

レイアウトリソースでカスタムアトリビュートを指定したときの挙動をテストしたいということがある。ただ、テストでテスト用のレイアウトリソースファイルを読み込ませるのも一苦労なので、Viewに渡すAttributeSetのモックオブジェクトを作るのがいいらしい。Robolectricにはそのためのビルダーがあり、属性のIDと値のテキストをペアで渡す。

Robolectric.buildAttributeSet()
  .addAttribute(R.attr.foo, "bar")
  .addAttribute(R.attr.foo_color, "@color/foo_color")     // レイアウトリソースに書く時のように指定する
  .build()