我正在尝试使用Mocktail包编写一个.pickAssets以测试是否实际使用正确的参数调用

我正在尝试使用 Mocktail 包 对这个颤振包 编写一个测试,但是这个包似乎在文档中没有测试。

我已经包含了最小的可重现示例。测试文件目前不工作,它包含在使用 Flutter Mocktail 包的示例测试代码中。

它应该模拟 AssetPicker.pickAssets 以测试它是否实际使用正确的参数调用。我是在IOS模拟器上运行的,我们需要在ios/Runer/Info.plist中添加这个key,否则点击添加按钮后模拟器会意外关闭。

main.dart

widget_test.dart

import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:mocktail/mocktail.dart';
import 'package:wechat/main.dart';
import 'package:wechat_assets_picker/wechat_assets_picker.dart';
class _MockAssetPicker extends Mock implements AssetPicker {}
void main() {
  testWidgets('It should call the WeChat asset picker',
      (WidgetTester tester) async {
    await tester.pumpWidget(const MyApp());
    final BuildContext context = tester.element(find.byType(MyApp));
    final assetPickerMock = _MockAssetPicker();
    when(() => assetPickerMock.pickAssets(context)).thenAnswer((_) => Future.value([
          const AssetEntity(
            id: 'id1',
            typeInt: 1,
            width: 100,
            height: 100,
          ),
        ]));
    AssetPicker.instance = assetPickerMock;
    await tester.tap(find.byIcon(Icons.add));
    await tester.pump();
    verify(() => assetPickerMock.pickAssets(context)).called(1);
  });
}

© 版权声明
THE END
喜欢就支持一下吧
点赞163赞赏 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容