gpt4 book ai didi

flutter - 如何测试电子邮件应用程序打开的 flutter url_launcher?

转载 作者:IT王子 更新时间:2023-10-29 06:38:07 24 4
gpt4 key购买 nike

我确实有一个带有 SnackbarAction 的 Snackbar,它应该打开默认的电子邮件应用程序,点击时带有默认的主题和正文。我想知道是否有可能以某种方式验证某些单元测试是否真的发生了这种情况。

我的 Snackbar 代码如下所示:

SnackBar get snackbar =>
SnackBar(
content: Text(message),
action: SnackBarAction(
key: const Key('ErrorSnackbarAction'),
label: AppLocalizations
.of(_context)
.report,
onPressed: () async => await launch('mailto:test@test.com?subject=TestSubject&body=TestBody')));

我已经在验证外观是否正常:

group('ErrorSnackbar', () {
testWidgets('appearance test', (WidgetTester tester) async {
await tester.pumpWidget(_generateSnackbarApp());

await _showSnackbar(tester);

expect(find.text(userMessage), findsOneWidget);
expect(find.byWidgetPredicate((Widget widget) =>
widget is SnackBarAction && widget.label == 'Report'), findsOneWidget);
});

testWidgets('error report test', (WidgetTester tester) async {
await tester.pumpWidget(_generateSnackbarApp());

await _showSnackbar(tester);

tester.tap(find.byKey(errorSnackbarAction));
await tester.pump();

// how to verify that the default email app was opened
// with expected subject and body?

});
});

最佳答案

简答:你不能。

mailto 的启动由设备的操作系统处理,并且不在 flutter 应用程序的上下文中。由于 flutter 测试包专注于 flutter 应用程序,操作系统上发生的事情是遥不可及的。

关于flutter - 如何测试电子邮件应用程序打开的 flutter url_launcher?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54869155/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com