@@ -5,6 +5,7 @@ import 'package:bloc_library/blocs/todos/todos.dart';
55import 'package:bloc_library/models/models.dart' ;
66import 'package:bloc_test/bloc_test.dart' ;
77import 'package:flutter_test/flutter_test.dart' ;
8+ import 'package:mocktail/mocktail.dart' ;
89
910class MockTodosBloc extends MockBloc <TodosEvent , TodosState >
1011 implements TodosBloc {}
@@ -13,45 +14,50 @@ void main() {
1314 group ('StatsBloc' , () {
1415 final todo1 = Todo ('Hallo' );
1516 final todo2 = Todo ('Hallo2' , complete: true );
16- late TodosBloc todosBloc;
17- late StatsBloc statsBloc;
18-
19- setUp (() {
20- todosBloc = MockTodosBloc ();
21- statsBloc = StatsBloc (todosBloc: todosBloc);
22- });
2317
2418 blocTest <StatsBloc , StatsState >(
2519 'should update the stats properly when TodosBloc emits TodosLoaded' ,
2620 build: () {
27- todosBloc = MockTodosBloc ();
21+ final todosBloc = MockTodosBloc ();
22+ when (() => todosBloc.state).thenReturn (TodosLoading ());
2823 whenListen (
2924 todosBloc,
3025 Stream <TodosState >.fromIterable ([TodosLoaded ([])]),
3126 );
3227 return StatsBloc (todosBloc: todosBloc);
3328 },
34- act: (StatsBloc bloc) async => bloc.add (UpdateStats ([])),
3529 expect: () => [StatsLoaded (0 , 0 )],
3630 );
3731
3832 blocTest <StatsBloc , StatsState >(
3933 'should update the stats properly when Todos are empty' ,
40- build: () => statsBloc,
34+ build: () {
35+ final todosBloc = MockTodosBloc ();
36+ when (() => todosBloc.state).thenReturn (TodosLoading ());
37+ return StatsBloc (todosBloc: todosBloc);
38+ },
4139 act: (StatsBloc bloc) async => bloc.add (UpdateStats ([])),
4240 expect: () => [StatsLoaded (0 , 0 )],
4341 );
4442
4543 blocTest <StatsBloc , StatsState >(
4644 'should update the stats properly when Todos contains one active todo' ,
47- build: () => statsBloc,
45+ build: () {
46+ final todosBloc = MockTodosBloc ();
47+ when (() => todosBloc.state).thenReturn (TodosLoading ());
48+ return StatsBloc (todosBloc: todosBloc);
49+ },
4850 act: (StatsBloc bloc) async => bloc.add (UpdateStats ([todo1])),
4951 expect: () => [StatsLoaded (1 , 0 )],
5052 );
5153
5254 blocTest <StatsBloc , StatsState >(
5355 'should update the stats properly when Todos contains one active todo and one completed todo' ,
54- build: () => statsBloc,
56+ build: () {
57+ final todosBloc = MockTodosBloc ();
58+ when (() => todosBloc.state).thenReturn (TodosLoading ());
59+ return StatsBloc (todosBloc: todosBloc);
60+ },
5561 act: (StatsBloc bloc) async => bloc.add (UpdateStats ([todo1, todo2])),
5662 expect: () => [StatsLoaded (1 , 1 )],
5763 );
0 commit comments