我正在用bloc_test和mockito库编写颤振测试方法。在模拟存储库API调用时,我遇到了一些奇怪的问题。这可能是一个简单的解决办法,但从过去几个小时开始,我就开始尝试了。

类似的代码也存在于其他公共存储库中,但在这里它不起作用。
when(() => mockRepository.getPosts())
.thenAnswer((_) async => Right(postEntityList));getPosts方法结构:
@override
Future<Either<Failure, List<PostEntity>>> getPosts() async {
}基本blocTest方法代码:
group('whenListen', () {
blocTest('verify posts bloc tests',
build: () {
when(() => mockRepository.getPosts())
.thenAnswer((_) async => postEntityList);
return postsBloc;
},
act: (PostsBloc postBloc) {
postBloc.getAllPostsUseCase();
},
expect: () => (isA<PostsInitial>()));
});发布于 2022-08-24 11:09:20
你使用它的方式不对。dartz包使用Right或Left类访问实际类型。只需将postEntityList更改为Right(postEntityList)即可
when(() => mockRepository.getPosts())
.thenAnswer((_) async => Right(postEntityList));https://stackoverflow.com/questions/73471419
复制相似问题