After i'm running test with bloc test, i got issue late error, if i change late with nullsafety their also will be return error, so what alternative to solve? when i try without bloc it's run as well nothing return error.
@GenerateMocks([SearchMovies, SearchTvSeriess])
void main() {
late SearchMovieBloc searchMovieBloc;
late SearchTvSeriesBloc searchTvSeriesBloc;
late MockSearchMovies mockSearchMovies;
late MockSearchTvSeriess mockSearchTvSeriess;
setUp(() {
searchTvSeriesBloc = SearchTvSeriesBloc(mockSearchTvSeriess);
mockSearchMovies = MockSearchMovies();
searchMovieBloc = SearchMovieBloc(mockSearchMovies);
mockSearchTvSeriess = MockSearchTvSeriess();
});
final tTvSeriesModel = TvSeries(
originalName: "2 Good 2 Be True",
posterPath: "/2Wf5ySCPcnp8lRhbSD7jt0YLz5A.jpg",
id: 135647,
overview:
"Car mechanic Eloy makes a terrible first impression on Ali, who works for a real estate magnate. But both of them are hiding their true personas.",
popularity: 943.32,
genreIds: [35, 18],
backdropPath: "/sIRK4NYe1OK2hOJAg4xxuxzceKk.jpg",
voteAverage: 7.5,
voteCount: 102);
final tTvSeriesList = <TvSeries>[tTvSeriesModel];
final tQuery = 'spiderman';
group('Search Movies', () {
test('Initial state should be empty', () {
expect(searchMovieBloc.state, SearchEmpty(''));
});
blocTest<SearchMovieBloc, SearchState>(
'Should emit [SearchLoading, SearchHasData] when data is gotten successfully',
build: () {
when(mockSearchMovies.execute(tQuery))
.thenAnswer((_) async => Right(testMovieList));
return searchMovieBloc;
},
act: (bloc) => bloc.add(OnQueryChanged(tQuery)),
wait: const Duration(milliseconds: 500),
expect: () => [
SearchLoading(),
SearchHasData(testMovieList),
],
verify: (bloc) {
verify(mockSearchMovies.execute(tQuery));
},
);