課題
riverpodを使った開発で、テストコードを書くとき、StateNotifierのMockをなかなかうまくいかない。
build runnerで自動生成のmockだと、addListnerのstubが見つからないエラーが出る。
色々調べて、ようやく正しい書き方見つかったので、ここにメモ。
書き方
reference: https://github.com/rrousselGit/riverpod/discussions/1398
結局作成者本人の情報が一番正確、当たり前だけど。
class MockedNotifier extends StateNotifier<Model> with Mock implements MyNotifier {
MockedNotifier(Model model): super(model);
}
感想
なぜこの書き方がうまくいくのかはわかっていない。
おそらく、with Mockを紐解けばわかるはず。
ちなみに、今まではextends Mock implements MyNotifierで書いたのだが、stateをうまく捉えられない。