[英]Flutter Bloc test error with late initialize variable?
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?在我使用 bloc 测试运行测试后,我遇到了延迟错误,如果我用 nullsafety 更改延迟,它们也将返回错误,那么有什么替代方法可以解决? when i try without bloc it's run as well nothing return error.
当我尝试不使用 bloc 时,它也会运行并且没有任何返回错误。
@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));
},
);
I think the problem that you are initializing bloc in setup before its dependancies.我认为您在依赖项之前在设置中初始化 bloc 的问题。 The order matters here.
顺序在这里很重要。 Maybe you should do it like this:
也许你应该这样做:
setUp(() {
mockSearchTvSeriess = MockSearchTvSeriess();
mockSearchMovies = MockSearchMovies();
searchTvSeriesBloc = SearchTvSeriesBloc(mockSearchTvSeriess);
searchMovieBloc = SearchMovieBloc(mockSearchMovies);
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.