Slide 13
Slide 13 text
Flutter Bloc のテスト — AAA(Arrange-Act-Assert)パターン 13
Test
Bloc の単体テストは
bloc_test で AAA に沿って書ける。
Arrange 準備
テスト対象と周辺を 組み立てる。
Stub・初期状態の設定。
blocTest(
'...',
setUp: () {
when(() => repo.fetchHoges())
.thenAnswer((_) async => hoges);
},
build: () => HogeBloc(repository: repo),
seed: () => const HogeState(status: HogeStatus.loading),
// ...
);
Act 実行
検証したい操作を 1つ実行。
Event を add するだけ。
blocTest(
'...',
// ...
act: (bloc) => bloc.add(HogeFugaPressed()),
// ...
);
Assert 検証
State 遷移と副作用を 検証。
順序も含めて検査できる。
blocTest(
'...',
// ...
expect: () => [
isA()
.having((s) => s.status, 'status', HogeStatus.loadi
isA()
.having((s) => s.status, 'status', HogeStatus.succe
],
verify: (_) {
// 副作用検証 (mock の呼ばれ回数など)
},
);