需要确保使用的mockito和bloc_test的版本兼容,并在when().thenAnswer()中添加异步回调。
示例代码:
dependencies: bloc_test: ^7.1.1 mockito: ^5.0.0
// 需要确保使用mockito和bloc_test的版本兼容 // 在这个例子中使用的是mockito 5.0.0和bloc_test 7.1.1 test('Test bloc with mockito', () async { final mockRepository = MockRepository(); when(mockRepository.getData()).thenAnswer((_) async => 'Mock Data');
final bloc = MyBloc(mockRepository);
expectLater( bloc.stream, emitsInOrder([ MyInitialState(), MyLoadingState(), MyLoadedState('Mock Data'), ]));
bloc.add(MyEvent()); });
class MockRepository extends Mock implements Repository {}
class MyBloc extends Bloc
MyBloc(this.repository) : super(MyInitialState());
@override
Stream
class Repository {
Future
class MyEvent {}
class MyState {}
class MyInitialState extends MyState {}
class MyLoadingState extends MyState {}
class MyLoadedState extends MyState { final String data;
MyLoadedState(this.data); }
class MyErrorState extends MyState { final String errorMessage;
MyErrorState(this.errorMessage); }