fresh digitable

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

2020年に見たアニメ

いつものやつをやります。

前回: akihito104.hatenablog.com

いつもは帰省して暇になった時間に書くんだけど今年は帰省しなかったので書きそびれていた。例によって五十音順です。もしそうなっていないところがあったら私のミスです。カッコ[]付きは未視聴(録画消化待ち)です。

冬クール

  • 異種族レビュアーズ
  • ID:INVADED イド:インヴェイデッド
  • インフィニット・デンドログラム
  • 映像研には手を出すな!
  • A3! SEASON SPRING & SUMMER
  • 推しが武道館いってくれたら死ぬ
  • 織田シナモン信長
  • 恋する小惑星
  • 地縛少年花子くん
  • SHOW BY ROCK!!ましゅまいれっしゅ!!
  • ソマリと森の神様
  • ドロヘドロ
  • へやキャン△
  • へんたつ
  • マギアレコード 魔法少女まどか☆マギカ外伝
  • 魔術士オーフェンはぐれ旅

春クール

このあたりから次以降のクールにずれ込む作品が出始めた。今回は最初に放送したクールに入れている。

夏クール

  • 宇崎ちゃんは遊びたい!
  • うまよん
  • GREAT PRETENDER
  • デカダンス
  • ノー・ガンズ・ライフ 第2期

秋クール

映画

参考: 2020年度のおすすめアニメランキング【あにこれβ】

robolectric4.5-alpha-1かそれより新しいバージョンを使ってSQLiteのCommon Table Expressionを使ったテーブルのJVMテストをしよう

事の発端:

RepositoryのJVMテストを書くために、Room.inMemoryDatabaseBuilder()を使ってDBを作りテスト対象に注入したところ、テスト実行時に次のような例外が出た*1

Caused by: com.almworks.sqlite4java.SQLiteException: [1] DB[1] prepare() CREATE VIEW `view_foo` AS WITH bar AS ( ... [near "WITH": syntax error]

で、ぐぐったらズバリのissueが上がっていた。

github.com

このissueはrobolectric 4.1の頃に開かれたらしいが、コメントによるとこのころのrobolectricが依存していたsqlite4javaのバージョンは0.282で、最新のバージョンはCTEをサポートしたsqlite3.8.7に対応している1.0.392とのこと。

sqlite4javaのバージョンアップに関するPRはrobolectric4.4のリリース以降にマージされたようで、4.5-alpha-1より新しいバージョンに含まれている様子。今回は4.5-alpha-3が最新だったのでこれを使ってテストが通ることを確認した。

確認していないが、過去に書いた記事: akihito104.hatenablog.com に関しても影響があるかもしれない。あるといいなあ。

*1:実行時のrobolectricのバージョンは4.4

自作の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()