我确实有一个带有 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')));
Run Code Online (Sandbox Code Playgroud)
我已经在验证工作正常的外观:
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 …Run Code Online (Sandbox Code Playgroud) Liquibase 提供更新功能,更新列中的整个值。有没有办法只替换一部分值?或者我必须使用普通的 sql 语句吗?
该列中的值如下所示:
downtime = maintenanceTime + rampUpTime + repairTime;
Run Code Online (Sandbox Code Playgroud)
打电话时
downtime = maintenanceTime + rampUpTime + repairTime;
Run Code Online (Sandbox Code Playgroud)
它翻译成
<changeSet author="faf" id="29.10.19-16:34-001">
<update tableName="PARAMETER">
<column name="VALUE" type="varchar(64)" value="setupTime" />
<where>VALUE LIKE '%rampUpTime%'</where>
</update>
</changeSet>
Run Code Online (Sandbox Code Playgroud)
我正在寻找类似的东西,它将被翻译成
UPDATE parameter set VALUE = 'setupTime' where VALUE like '%rampUpTime%'
Run Code Online (Sandbox Code Playgroud)